Oracle

Oracle10g: Canviar el joc de caràcters de la base de dades

Pot passar que després d'instal lar Oracle o configurar una nova base de dades ens adonem que el joc de caràcters escollit durant la instalació no és el correcte. El que se'ns pot passar en casos com aquest és esborrar la base de dades i reconfigurar o coses pitjors ... Però no cal. Podem canviar el joc de caràcters parant la base de dades, aixecant de manera restrictiva, canviant la configuració i reiniciat la base de dades. Howto:

- Primer ens connectem amb la base de dades 

$ sqlplus sys/pwd@prod as sysdba
 

- Aturem la base de dades 

SQL>SHUTDOWN IMMEDIATE;

 

- Aixequem de forma restrictiva * 

SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER DATABASE OPEN;

- Canviem el mapa de caràcters 

SQL>ALTER DATABASE CHARACTER SET <nou mapa de caràcters>;

- Reiniciem la base de dades i yata 

SQL>SHUTDOWN IMMEDIATE;

SQL>STARTUP;

Exportar fàcilment dades d'Oracle a un fitxer pla

Una manera molt simple d'exportar dades d'una consulta, taula, etc. d'una base de dades oracle a un fitxer pla és utilitzar la comanda SPOOL de SQLPlus. D'aquesta manera no cal dependre d'eines visuals, que no sempre estan disponibles, o no sempre funcionen com volem. A més es poden utilitzar les funcions de format d'Oracle en la mateixa sentència SELECT perquè les dades es generin ja en el format que necessitem.

Si, per exemple, volem recuperar algunes dades de tots els registres d'una taula de clients ordenats per data d'alta, només cal obrir una sessió de SQLPlus i executar aquesta sèrie de comandes:

SQL> SET HEADING OFF
SQL> SET FEEDBACK OFF
SQL> SPOOL C:\datos_de_clientes.txt
SQL> SELECT 'Cliente ' || CLI_NOMBRE || ', ' || CLI_NIF || '. Fecha alta: ' || TO_CHAR(CLI_FECHAALTA,'YYYY-MM-DD')
     FROM TABLA_CLIENTES
     ORDER BY CLI_FECHAALTA DESC;
SQL> SPOOL OFF;
SQL> SET FEEDBACK ON
SQL> SET HEADING ON

Les primeres línies amaguen les capçaleres que contindrien el nom dels camps, i no ens interessen perquè nosaltres només volem les dades. Spool dirigeix la sortida de dades cap al fitxer 'datos_de_clientes.txt' de la unitat C de la nostra màquina local.

Accés remot mitjançant DBLINK d'Oracle

4

 Per accedir des d'una base de dades Oracle a objectes d'una altra base de dades Oracle la manera més senzilla és utilitzar un DBLINK (que sigui la més senzilla no significa que sempre sigui la més aconsellable, l'abús dels DBLINKS pot generar molts problemes, tant de rendiment com de seguretat)

Per a això és necessari, amb un usuari que posseeixi el privilegi CREATE DATABASE LINK, crear el DBLINK en la base de dades origen (A) mitjançant una senzilla sentència com la següent:

  • create database link LNK_DE_A_a_B connect to USUARI identified by CONTRASENYA USING  'B';

'LNK_DE_A_a_B' és el nom del link, 'USUARI' i 'CONTRASENYA' són els identificadors de l'usuari que utilitzarà el  link per connectar-se, els permisos del qual heretaran tots els accessos a través del link, i B

és el nom de la instància de la base de dades.

A través del DBLINK es pot connectar amb els objectes de la base de dades remota amb els permisos que tingui l'usuari que s'ha proporcionat en la sentència de creació.

Contingut sindicat