(using oracle express edition XE with ubuntu)
Primero vamos a indicar las carencias y defectos que se presentan una vez desempacado e instalado el software
El paquete de oracle server xe contiene una utilidad de conección en modo consola la que se denomina sqlplus, sin embargo el sistema no queda configurado adecuadamente para encontrar este programa, y para ejecutarlo se requiere llamar a otros scripts que se supone que han sido escritos por profesionales de una compañia tan grande como Oracle, sin embargo dejan mucho que desear.
Como podemos ver por el acceso directo que crea la instalación:
el software se instala en:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
y el script que corre para abrir sqlplus es:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/runsqlplus.sh
if [ -f /usr/bin/gnome-terminal ]
then
/usr/bin/gnome-terminal -t "SQL*Plus" -e "/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh"
else
/usr/bin/xterm -T "SQL*Plus" -n "SQL*Plus" -e "/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh"
fi
el cual lo único que hace es escoger el programa de terminal a utilizar, dando preferencia si esta presente a gnome-terminal sobre xterm, y fijando el título de la ventana para invocar a:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
ORACLE_SID=XE
export ORACLE_SID
NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export NLS_LANG
PATH=$ORACLE_HOME/bin:$PATH
export PATH
sqlplus /nolog
este otro lo que hace es fijar adecuadamente las variables
ORACLE_HOME
ORACLE_SID
NLS_LANG
PATH
y finalmente arrancar el sqlplus sin log
lo feo del caso es que el script
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh
contiene un error en la linea 108 y 110, al evaluar una condición
originalmente esta así:
if [[ -n "$LC_ALL" ]]; then
locale=$LC_ALL
elif [[ -n "$LANG" ]]; then
locale=$LANG
else
locale=
fi
pero se puede corregir simplemente cambiandolo para que quede así:
if [ -n "$LC_ALL" ]; then
locale=$LC_ALL
elif [ -n "$LANG" ]; then
locale=$LANG
else
locale=''
fi
para que ahora si podamos correr con toda confianza en nuestra terminal
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh
lo cual nos dará un prompt como este:
SQL*Plus: Release 10.2.0.1.0 - Production on Lun Mar 19 16:22:22 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>
¿y luego que se hace?
Primero nos tenemos que conectar usando un comando connect (nos podemos conectar a un motor oracle ya sea local o remoto), para ello tenemos que saber el usuario y password
en este caso nos conectamos a un server local (127.0.0.1)
como un usuario normal, ej. username
SQL> connect username@127.0.0.1
(sqlplus connect as sys)
si queremos conectarnos como DBA hay que agregar:
SQL> connect sys@127.0.0.1 as sysdba
posteriormente pregunta el password y lo proporcionamos para obtener acceso
y saldrá un mensaje que dice:
Conectado.
SQL >Podemos desconectarnos usando
SQL> disconnect
¿y luego que se hace?
podemos mostrar ayuda para un comando utilizando el comando help
SQL> help connect
Otros comandos a probar son:
help
help accept
help index
Sin embargo seguramente te estas preguntando como se le hace para correr un script sql?
Pues basicamente una vez conectados ya podemos escribir nuestros querys sql
SQL> create table t ( a int ) ;
Tabla creada.
SQL> define _EDITOR = gvim
oSQL> define _EDITOR = gedit
Luego ya podemos editar un archivo mediante
SQL> edit filename
Esto abrira nuestro editor con el archivo filename.sql
Para correr los comandos en dicho archivo podemos usar:
SQL> start filename
o
SQL> @filename
Para guardar la salida de la ejecución en un archivo podemos usar:
SQL> spool output_filename append
append es opcional pero es recomendable para no borrar datos previos que haya en el archivo,
para guardar la salida en el archivo es necesario detener el spool
SQL> spool off
Con la información anterior ya nos es posible editar y ejecutar scripts, así como guardar la salida de ejecución, por lo que hasta aquí voy a dejar esta introducción a la linea de comandos de oracle sqlplus, esto para los que preferimos usar una linea de comandos a la interface html, que es un poco impractica.
Podeís encontrar mas información usando este link:
http://docs.oracle.com/cd/B19306_01/server.102/b14357/pt2.htm
Fuentes:
http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch3.htm
4 comentarios:
SQL > set echo on
permite visualizar el query junto con la salida del query
Hola, a ver si me puedes ayudar, mi problema es que al hacer una consulta en la terminal mediante sqlplus, me salen las columnas movidas, dificultando la legibilidad. He aumentado el ancho del terminal, pero desperdicia el tamaño que le he añadido.
¿Qué puedo hacer para que me lo muestre correctamente?
Gracias y un saludo.
pues yo te recomiendo que uses otro software para este propósito como Aquafold Datastudio o Toad.
Publicar un comentario