Professional Documents
Culture Documents
El editor SQL*Plus
SQL*Plus bsico
Primer contacto
Acceso como administrador
Esta gua asume que usted ha instalado el gestor y que, por lo tanto, conoce la
contrasea del administrador. Oracle reserva la cuenta sys al administrador con
todos los privilegios. As pues, asumiendo que la contrasea del administrador sea
sys tambin, use la siguiente serie de comandos para abrir sesin:
> sqlplus /nolog
SQL> CONN sys/sys@orcl AS sysdba
Desconectarse
Use el comando quit para cerrar una conexin:
SQL> QUIT;
-2-
Manuel Vergaz Aguilera. El editor SQL*Plus
Desbloquear
Si est bloqueada (expired & blocked) escriba estas sentencias una tras otra:
SQL> alter user hr account unlock identified by hr;
SQL> grant connect to hr;
SQL> grant resource to hr;
Probar la conexin
- Para probar la conexin use
SQL> conn hr/hr
Cada vez que utilice el comando conn en una conexin abierta, ser desconectado
de la anterior sesin y conectado a la nueva. SQL*Plus no mantiene conexiones en
paralelo.
-3-
Manuel Vergaz Aguilera. El editor SQL*Plus
Si utiliza el comando run sin pasarle ningn comando del bffer, lanzar el ltimo
comando vlido. Es la misma accin que si lanzase como comando la barra /:
Recuerde: run y / sirven para lo mismo.
-4-
Manuel Vergaz Aguilera. El editor SQL*Plus
El editor
Lance el siguiente comando para ver cul es el editor por defecto:
SQL> DEFINE_EDITOR;
DEFINE _EDITOR = "Notepad" (CHAR)
Si necesita modificarlo use el comando as:
SQL> define_editor='vi';
Formato de columnas
Cuando se traiga columnas de la base de datos sqlplus les dar un formato muy
bsico: alineamiento derecho para los nmeros y poco ms. Si quiere mejorar el
aspecto de sus columnas puede:
- Modificar la moneda de las columnas de monedas
- Modificar el encabezamiento
- Modificar la envoltura de texto (lneas de texto)
- Justificar el texto
- Formatear el texto
-5-
Manuel Vergaz Aguilera. El editor SQL*Plus
Moneda
Para dar un formato dlares a la columna salary de la tabla de empleados use:
SQL> COLUMN salary format $99999.99
SQL> select salary from employees where rownum < 10;
SALARY
----------
$2600.00
$2600.00
$4400.00
$13000.00
$6000.00
$6500.00
$10000.00
$12000.00
$8300.00
Resulta un poco difcil ponerles euros a la salida por sqlplus. Por esa razn remi-
timos a la faq correspondiente de Oracle:
http://www.oracle.com/technology/support/tech/sql_plus/htdocs/faq101.html#A49
12
Alineacin
Para alinear el texto a la derecha (right), a la izquierda (left) o centrado (center)
use:
SQL> column first_name justify right;
Renombrar el encabezado
La opcin heading del comando column le permite renombrar el encabezado de
columna:
SQL> column first_name heading Nombre;
Envoltura de texto
Con el concepto de envoltura de texto se entiende que si una fila no cabe en una
lnea, se contine en la siguiente en vez de truncarla:
SQL> column Texto format a13 word_wrapped;
SQL> select 'Esto es una fila muy larga, laaaaarga' Texto from dual;
Limpiar formatos
Puede limpiar los formatos aplicados con el siguiente comando:
SQL> clear COLUMNS
columns limpiado
Formato de pgina
Fijar el nmero de caracteres de lnea
De forma predeterminada sqlplus inicia la edicin de pginas con 80 caracteres
por lnea:
SQL> show linesize;
Puede modificar este valor con el comando set:
-6-
Manuel Vergaz Aguilera. El editor SQL*Plus
Uso de variables
Para poder trabajar con valores almacenados en memoria se usan variables.
Sqlplus trabaja tanto con variables temporales (se usan en una sentencia y luego
desaparecen) como con variables definidas (duran hasta que se eliminan expresa-
mente o s sale de sqlplus.
Variables temporales
Se insertan en el comando mediante un ampersand justo delante del nombre de la
variable y cuando el comando se ejecuta, sqlplus le pide el valor de a variable:
SQL> set verify off
SQL> select job_id from employees where last_name Like '&nombre';
Introduzca un valor para nombre: Russell
JOB_ID
----------
SA_MAN
-7-
Manuel Vergaz Aguilera. El editor SQL*Plus
Las variables temporales son tiles en los scripts porque piden al usuario del script
los valores a insertar en cada caso.
Modificar el ampersand
El ampersand (&) sirve para determinar que lo que viene detrs es una variable
temporal. Si desea utilizar otro smbolo que haga lo mismo use:
SQL> SET DEFINE '#';
SQL> show define;
Variables definidas
Puede crear variables de sesin y utilizar su valor en diferentes comandos:
SQL> DEFINE empleado = 10;
De esta manera cada vez que use la variable, sqlplus lo sustituir por 100:
SQL> select last_name from employees where employee_id = &empleado;
Si necesita conocer el valor de una variable concreta use:
SQL> DEFINE empleado;
Si necesita conocer el valor de todas las variables definidas use:
SQL> DEFINE;
El comando accept
Gracias a accept es posible permitirle al usuario del script que establezca el valor de
la variable definida:
SQL> accept empleado number prompt 'Id de empleado= ';
Id de empleado=
Lo bueno de este mtodo es que es posible determinar el tipo de variable y la pre-
gunta que le va a saltar al usuario.
Undefine
Finalmente cunado ya no sean necesarias y para ahorrar espacio de memoria puede
eliminar las variables definidas con undefine:
SQL> undefine empleado;
-8-
Manuel Vergaz Aguilera. El editor SQL*Plus
Clculo de subtotales
Gracias a las funciones Break on y Compute se sqlplus es posible crear informes
con secciones de subtotales:
SQL> set pagesize 120;
SQL> BREAK ON department_id
SQL> COMPUTE SUM OF salary ON department_id
SQL> select department_id, salary from employees order by
department_id;
Cuya salida de datos, recortada, sera algo as:
DEPARTMENT_ID SALARY
------------- ----------
10 4400
************* ----------
sum 4400
20 13000
6000
************* ----------
sum 19000
30 11000
2500
3100
2900
2800
2600
************* ----------
sum 24900
Ayuda de SQL*Plus
Gracias al comando help podr recuperar la ayuda en forma de mens de coman-
dos:
SQL> HELP
Accesses this command line help system. Enter HELP INDEX or ? INDEX
for a list of topics. In iSQL*Plus, click the Help button to display
iSQL*Plus online help.
You can view SQL*Plus resources at
http://otn.oracle.com/tech/sql_plus/
and the Oracle Database Library at
http://otn.oracle.com/documentation/
Segn esto puede lanzar help index para visualizar un listado de los temas de la
ayuda:
SQL> help INDEX
Y luego seleccionar uno de la lista:
SQL> help copy
glogin.sql
Este fichero es obligatorio y sqlplus lo lee siempre que se le invoca. Esta ubicado
normalmente en el directorio:
-9-
Manuel Vergaz Aguilera. El editor SQL*Plus
{ora_home}\sqlplus\admin
Por defecto el script viene vaco o con algunas lneas comentadas:
--
-- Copyright (c) 1988, 2005, Oracle. All Rights Reserved.
--
-- NAME
-- glogin.sql
--
-- DESCRIPTION
-- SQL*Plus global login "site profile" file
--
-- Add any SQL*Plus commands here that are to be executed when a
-- user starts SQL*Plus, or uses the SQL*Plus CONNECT command.
--
-- USAGE
-- This script is automatically run
--
Puede personalizar su sesin con comandos sqlplus:
set linesize 78
Entre las personalizaciones menos ortodoxas se encuentra las referidas al prompt o
aspecto de la lnea de comandos:
set sqlprompt 'Inserte un comando sql> '
O la personalizacin ms til:
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER _PRIVILEGE> "
login.sql
Este fichero, opcional y presente desde Oracle 10, sirve para almacenar ms co-
mandos que se ejecutan en la sesin de sqlplus. La diferencia con el primero estriba
en que ste sirve para usuarios particulares de la mquina (no de Oracle) desde la
que se conectan a Oracle.
Este fichero suele estar en la misma ubicacin de la instancia de sqlplus del usua-
rio:
{oracle_home}\dbs
Las configuraciones de login.sql tienen prioridad sobre glogin.sql ya que se ejecutan
justo despus.
- 10 -
Manuel Vergaz Aguilera. El editor SQL*Plus
SQL*Plus avanzado
Esta segunda seccin de la gua pretende mostrar otras cuestiones ms especficas
de sqlplus que permitan un mayor aprovechamiento de la sesin con Oracle.
Inicios de sesin
De forma predeterminada el inicio de sesin sqlplus se produce mediante la se-
cuencia:
> sqlplus /nolog
SQL> conn hr/hr
Pero hay otras formas de levantar una sesin. La primera es invocar a sqlplus pa-
sndole las credenciales:
>sqlplus hr/hr
O bien
>sqlplus hr/hr@orcl
La diferencia estriba en si orcl es o no la conexin por defecto que hay en la varia-
ble de entorno de Windows oracle_sid:
> set oracle_sid
- 11 -
Manuel Vergaz Aguilera. El editor SQL*Plus
Anexos
Formatos de columna en SQL*Plus
Elemento Ejemplo Descripcin
9 9999 El nmero de nueves especifica el nmero de dgitos
recuperados. Si la cifra recuperada no es tan grande,
los 9 son sustituidos por espacios en blanco.
0 0999 Igual que en el caso anterior slo que aqu si la cifra
no es tan grande se colocan ceros en la posicin del
9990 cero.
$ $9999 El smbolo del dlar antecede el nmero.
MI 9999MI Mostrar el smbolo del - si el nmero es negativo.
S S9999 Mostrar el smbolo del + si el nmero es positivo o
cero, y el - si es negativo.
PR 9999PR Muestra los nmeros negativos entre ngulos.
D 99D99 Muestra el smbolo de los decimales en esa posicin.
G 9G999 Muestra el smbolo de los millares en esa posicin.
C C999 Muestra el smbolo ISO de la moneda.
L L999 Muestra el smbolo local de la moneda.
V 999V99 Multiplica el nmero por 10 tantas veces como apa-
rezca un nueve a la derecha de la V.
EEEE 9.999EEEE Muestra el nmero en expresin cientfica..
RN or rn RN Muestra el nmero en cifras romanas maysculas o
minsculas entre 1 y 3999.
Documentacin
- 12 -