Mostrando entradas con la etiqueta oracle. Mostrar todas las entradas
Mostrando entradas con la etiqueta oracle. Mostrar todas las entradas

20090615

tnsnames

En ocasiones es necesario ingresar a una base de datos oracle por sqlplus que no se encuentra registrada en el tnsnames del servidor y no se cuenta con los permisos para modificarlo; en estos casos se puede emplear un tnsnames local.
  • Editar el tnsnames local
usuario@servidor:~/miTNSnames/$ vi tnsnames.ora
  • Definir la variable TNS_ADMIN para que apunte al directorio empleado.
usuario@servidor:~/miTNSnames/$ export TNS_ADMIN="$HOME/miTNSnames"
  • Conectarse.
usuario@servidor:~/miTNSnames/$ sqlplus usuario/contra@SID
Escrito con el Navegador Flock

20080930

Conectarse a una BD Oracle

Primeramente es necesario instalar las librerías de Oracle, lo haremos empleando los .deb.

  • Agregar a source.list la linea
    $ sudo echo -e "\n#Oracle SQL*Plus\ndeb http://oss.oracle.com/debian unstable main non-free" >> /etc/apt/sources.list
    $ sudo apt-get update
    $ sudo apt-get install oracle-instantclient-*


  • Configurar la variable $ORACLE_HOME
    $ export ORACLE_HOME='/usr/lib/oracle/10.2.0.4/client'
    $ echo -e "\n#Oracle\nexport ORACLE_HOME='/usr/lib/oracle/10.2.0.4/client'" >> ~/.bashrc


  • Crear el archivo tnsnames
    $ sudo mkdir -p $ORACLE_HOME/network/admin/
    $ sudo gvim $ORACLE_HOME/network/admin/tnsnames.ora


  • Probar sqlplus
    $ sqlplus $BDusu/$BDcontra@$BDsid <<!
    select sysdate from dual;
    !

20080926

SQL*Loader 282

Al tratar de subir un archivo con sqlldr de oracle muestra el error:

SQL*Loader-282: Unable to locate character set handle for character set ID (2).


Los archivos de carga y control son correctos; asi que investigando, tras prueba y error en la pagina http://www.orafaq.com/forum/mv/msg/26570/72802/0/ nos dan una pista: las versiones del sqlldr y la bd son distintas.

En tlayecotiloni tenemos la versión

[tlayecotiloni] $ sqlldr
SQL*Loader: Release 10.2.0.1.0 - Production on Fri Sep 26 16:04:17 2008
...


En el servidor tenemos la versión

$ sqlldr
SQL*Loader: Release 8.1.7.0.0 - Production on Fri Sep 26 10:41:26 2008
...


Y la base de datos

$ sqlplus $BDusu/$BDcontra@$BDsid
...
Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
...


Por lo que para subir la información, no encontrando otra manera, pasamos el archivo de datos y de control desde nuestra estación (sqlldr versión superior a la BD) de trabajo al servidor (sqlldr versión anterior a la bd)