SQL PLUS
SQL PLUS es una herrramienta de Oracle para interactuar con la base de datos. Un intérprete SQL, con el que podemos editar y formatear los resultados. Para comenzar:
sqlplus usuario/contraseña@servicio
SQL Plus almacena en el buffer la última sentencia que se ha ejecutado, pero sólo la última. Esta se puede volver a ejecutar con poner r ( ó run, que edita la sentencia antes de ejecutarla) ó / (que simplemente la ejecuta).
Se consideran que hay dos tipos de archivos, los de spool y los de comandos:
El fichero spool almacena los resultados de consultas en un fichero .lst o lo manda a una impresora:
SPOOL fichero ( puedes ponerle el nombre con la extensión que tú quieras). Guarda el resultado al fichero.
SPOOL OUT Manda el resultado la impresora.
SPOOL OFF Cierra el fichero.
EXIT Si cerramos, se cierran automáticamente los ficheros.
Los archivos de comandos son para los comandos SQL y SQL*Plus. Estos se pueden editar, guardar y ejecutar. Su extensión es sql.
DEFINE_EDITOR: Se indica a SQL PLUS el editor de textos que se va a usar.
define_editor = vi –>Si estás usando Oracle de UNIX
define_editor = notepad –> Si estás usando Oracle para Windows
EDIT (ed): Editar fichero , con lo indicado anteriormente, sino se hace crea un fichero temporal (AFIEDT.BUF)
EXIT: Sale de SQL PLUS
GET: Lleva al buffer el fichero. GET <fichero>
HELP: Muestra la ayuda (si está disponible). Si ponemos help index ( nos dará un índice con la ayuda de la que disponemos.
LIST (l): Sirve para ver último comando metido sin ejecutar.
QUIT: Sale de SQL PLUS
RUN (r ó /): Ejecuta el último comando metido. (hay que usarlo cuando el comando o select indicada no acaba en ; )
SAVE: Graba el fichero. La opción REPLACE sirve para sobreescribir el fichero.
Formato: SAVE <nombre> [REPLACE] Ejemplo: SAVE C:\prueba.txt REPLACE
START (sta) : Ejecuta un fichero de texto con ordenes SQL. Si la extensión del fichero no es .SQL hay que indicarlo.
Formato: START <fichero> <parametros>
CONNECT: para conectarse como otro usuario.
HOST o !: para ejecutar un comando del Sistema Operativo
Estas otras son bastante útiles:
PROMPT: Escribe un mensaje en pantalla.
ACCEPT: Pide un valor y lo almacena en la variable que se indique.
PAUSE: Se para la ejecución hasta que se da al intro.
prompt Introduzca código
pause
accept codigo prompt ¿Código? ‘
select * from prueba where codigo=’&codigo;
Comandos de edición para la select:
Supongamos que tenemos esta select:
SQL> select distinct(cddni) from prueba;
Si queremos añadir una condición más, ponemos:
SQL> 2 where cdhabil = ‘DEM’;
Y al ejecutar la select veremos que se ha transformado en:
1 select distinct(cddni) from bperret
2 where cdhabil = ‘DEM’
Podemos trabajar y cambiar las líneas con sólo indicar el número de línea que vamos a añadir o cambiar o borrar.
Por ejemplo si ponemos SQL> 2 where cdhabil = ‘ROS’
1 select distinct(cddni) from prueba
2 where cdhabil = ‘ROS’
Lo mismo ocurrirá si escribimos:
SQL> a and cdclasnm = ’02’ genera:
1 select distinct(cddni) from prueba
2 where cdhabil = ‘DEM’ and cdclasnm = ’02’
Aquí os dejo unos cuantos comandos para editarla, su versión abreviada entre paréntesis:
append (a) Añade texto al final de la línea:
SQL> a and and cdclasnm = ’02’ genera:
1 select distinct(cddni) from bperret
2 where cdhabil = ‘DEM’ and cdclasnm = ’02’
change (c) Cambia una expresión por otra (c/antigua/nuevo)
SQL> c /02/03
3* and cdclasnm = ’03’
Sino ponemos nada en nuevo, nos eliminará esa expresión.
clear buffer (cl buff) Limpia el buffer
del Para borrar líneas. Tiene varias opciones:
del Borra la línea actual
del n Borra la línea número n
del * Borra la línea actual
del n * Borra desde la línea n hasta la actual
del last Borra la última línea
del m n Borra las líneas situadas entre ellas.
del * n Borra la actual línea hasta la línea n.
input (i) Inserta el texto que quieras
list (l) Muestra las líneas que hay en el buffer. Puede tener las siguientes combinaciones:
list n Muestra la línea n
list * Muestra la línea actual.
list n * Muestra las líneas entre la actual y el final
list last Muestra la última línea
list m n Muestra las líneas entre m y n
Variables de usuario
Se pueden definir Variables de usuario con el comando DEFINE
DEFINE Variable = valor
Para borrar una variable se utiliza el comando UNDEFINE
UNDEFINE variable
Variables de Sustitución
Las variables de sustitución son un nombre de variable de usuario con el símbolo & delante. Cuando SQL*Plus detecta una variable de sustitución en un comando, ejecuta el comando tomando el valor de la variable si ya está definida ( ver punto anterior ) o lo solicita por pantalla.
Si sólo quiere que el valor se solicite una vez pon &&nombrevariable.
SQL> define tabla=dual
SQL> select 2 from &tabla;
old 1: select 2 from &tabla
new 1: select 2 from dual
Sino lo hubiéramos asignado nos pondría por pantalla:
Enter value for tabla: