Вы находитесь на странице: 1из 42

Introduccin

El uso ms comn de SQL*Plus es realizar consultas

y obtener informes. No obstante, los datos obtenidos en las consultas se pueden presentar de forma ms elegante. En esta unidad se explica como utilizar SQL*Plus para crear listados formateados, controlando los ttulos del listado, las cabeceras de las columnas, las lneas de totales y subtotales, etc. La salida formateada de una consulta se puede guardar en un fichero para ejecutarlo que vez que se necesite consultar el listado.

Uso del editor para crear archivos SQL


Para guardar las rdenes en un archivo hay que

teclear la orden EDIT seguida de la ruta y el nombre del archivo en el que se almacenarn esas rdenes.

SQL> EDIT RUTA\NOMBRE_ARCHIVO


Con EDIT se invoca el editor (por defecto, el bloc de

notas: NOTEPAD.EXE) Si no existe el archivo, nos preguntar si queremos crearlo y pulsamos SI.

rdenes para generar informes


Orden Funcin

REMARK SET HEADSEP


TTITLE BTITLE COLUMN BREAK ON COMPUTE SET LINESIZE SET PAGESIZE SET NEWPAGE SPOOL

Incluir comentarios Dividir un ttulo en dos o ms lneas


Ttulo superior de cada pgina Ttulo inferior de cada pgina Dar formato al campo (columna ) Ruptura de control, calcular totales y subtotales Clculos con grupos de registros (filas) Nmero mximo de caracteres por lnea Nmero mximo de lneas por pgina Nmero de lneas en blanco entre pginas Guarda la salida del informe en un archivo

rdenes para generar informes


Orden REMARK (REM) Permite aadir comentarios. Se puede colocar en cualquier parte del listado.

REM Nombre: LISTADO.SQL REM Descripcin: Informe de ventas

rdenes para generar informes


Orden SET. Configuracin de las variables del

entorno SQL*Plus Permite consultar y cambiar el valor de las variables del entorno SQL*Plus. Para dar valor a las variables se utiliza SET: SET variable valor
Para visualizar su valor utilizamos SHOW:

SHOW variable

rdenes para generar informes


Orden SET. Configuracin de las variables del

entorno SQL*Plus En el listado se usan las variables HEADSEP, LINESIZE, PAGESIZE y NEWPAGE.
SET HEADSEP |. El smbolo que se coloca a la

derecha de SET HEADSEP es el carcter que se usar para dividir un ttulo en dos o ms lneas. SET LINESIZE. Con esta orden se define el nmero mximo de caracteres que pueden aparecer en una lnea. Por ejemplo, definir 50 caracteres por lnea:

SET LINESIZE 50

rdenes para generar informes


Orden SET. Configuracin de las variables del

entorno SQL*Plus
SET PAGESIZE. Con esta orden se define el nmero

de lneas por cada pgina, incluyendo TTITLE y BTITLE, las cabeceras de los campos y cualquier lnea en blanco. Generalmente este nmero es 66. Por ejemplo, definir 50 lneas por pgina:

SET PAGESIZE 50

rdenes para generar informes


Orden SET. Configuracin de las variables del

entorno SQL*Plus
SET NEWPAGE. Esta orden imprime lneas en

blanco antes de la lnea superior de cada pgina del informe, donde est la fecha y el nmero de pgina.
Por ejemplo, definir un informe que comience con 10

lneas en blanco seguidas de 50 lneas de informacin:

SET PAGESIZE 60 SET NEWPAGE 10

rdenes para generar informes


Orden SET. Configuracin de las variables del

entorno SQL*Plus
SET TERMOUT OFF y SET TERMOUT ON.

Cuando se ejecuta el listado con la orden START, ste aparece en pantalla.


Con SET TERMOUT OFF se evita que los datos

aparezcan en la pantalla. Se suele usar antes de la orden SPOOL.


Con SET TERMOUT ON los datos aparecern en

pantalla. Esta opcin se suele utilizar despus de la orden SPOOL.

rdenes para generar informes


Orden SET. Configuracin de las variables del

entorno SQL*Plus
SET SQLCASE UPPER. Esta orden indica a

SQL*Plus que convierta el texto introducido por teclado (con la orden ACCEPT) a maysculas.
SET PAUSE ON. Permite controlar el desplazamiento

entre pantallas pulsando la tecla Intro.


Se puede mostrar un texto: SET PAUSE texto. Se desactiva mediante: SET PAUSE OFF.

rdenes para generar informes


rdenes TTILTE y BTITLE. Encabezados y pies

de pgina Con estas rdenes podemos ttulos en la parte superior e inferior de cada pgina del informe. Por defecto, el ttulo aparece centrado, teniendo en cuenta el tamao de la lnea definido con LINESIZE. Podemos cambiar la alineacin del ttulo mediante las clusulas LEFT, RIGHT y CENTER. TTITLE CENTER Listado empleados BTITLE RIGHT Por departamento

rdenes para generar informes


rdenes TTILTE y BTITLE Para que aparezcan una o dos lneas en blanco

despus del ttulo se usa la orden SKIP n+1, donde n es el nmero de lneas que se van a saltar. Por ejemplo, para saltar una lnea despus de escribir el ttulo: TTITLE CENTER Listado empleados SKIP 2

rdenes para generar informes


rdenes TTILTE y BTITLE Cuando se obtiene un informe aparece en la

primera lnea del listado la fecha y el n de pgina, si se usa SKIP, esta primera lnea no aparecer.

rdenes para generar informes


rdenes TTILTE y BTITLE Para que los ttulos no vuelvan a aparecer al realizar

una consulta, se deben anular de esta forma:

SQL> TTITLE OFF


SQL> BTITLE OFF
Para que vuelvan a aparecer, se activan as:

SQL> TTITLE ON SQL> BTITLE ON

rdenes para generar informes


rdenes TTILTE y BTITLE Se puede incluir una serie de variables con

informacin del sistema en las rdenes TTITLE y BTITLE.


SQL.LNO: devuelve el n de lnea actual. SQL.RELEASE: devuelve la versin de Oracle.

SQL.PNO: devuelve el n de pgina actual.


SQL.USER: devuelve el nombre de usuario actual.

rdenes para generar informes


rdenes TTILTE y BTITLE Por ejemplo:

SQL> TTITLE LEFT APELLIDO EMPLEADOSCENTER Usuario: SQL.USER SKIP 1LEFT Pgina: FORMAT 999 SQL.PNO
Se crear el siguiente ttulo superior:

APELLIDO EMPLEADOS Pgina:1 contina en la siguiente lnea.

Usuario: SCOTT

El guin (-) se usa para indicar que la orden TTITLE

rdenes para generar informes


rdenes TTILTE y BTITLE Cualquier consulta que se realice a partir de ahora se

mostrar visualizando previamente el ttulo que se ha definido como cabecera del listado.
SQL> SELECT APELLIDO FROM EMPLEADO; APELLIDO EMPLEADOS Pgina:1 APELLIDO ------------------CEREZO REY MUOZ Usuario: SCOTT

rdenes para generar informes


Orden COLUMN. Formato de columnas Esta orden formatea el contenido de las columnas y

sus cabeceras. COLUMN NOMBRE_CAMPO FORMATO Formatos:


HEADING: Define la cabecera del campo.

COLUMN VENTAS HEADING Artculo|Vendido


El texto que aparece a la derecha de HEADINGD es la

nueva cabecera del campo que, adems, usa el carcter separador | para indicar que la cabecera del campo aparecer en dos lneas.

rdenes para generar informes


Orden COLUMN. Formato de columnas Formatos: FORMAT: Define el formato para el contenido del campo.
COLUMN VENTAS FORMAT A15
La A indica que se da formato a una columna de tipo

Alfanumrico, y el nmero que sigue a continuacin representa la cantidad de caracteres. Si la longitud del campo VENTAS es mayor de 15, aparecer dividida en dos lneas.

rdenes para generar informes


Orden COLUMN. Formato de columnas Formatos: FORMAT:
COLUMN TOTAL FORMAT 9G999D00
Define la columna numrica para espacio para 4

dgitos, 2 decimales, el punto de los miles y la coma de los decimales. Si la columna TOTAL tiene ms de 4 dgitos en alguna fila, aparecern caracteres #.

rdenes para generar informes


Orden COLUMN. Formato de columnas Formatos: Formatos para FORMAT

An Establece el ancho de columna en nmero de caracteres 9 Dgitos con supresin de ceros 0 Dgitos dejando los ceros $ Smbolo de dlar $ L Moneda local . D Posicin del punto decimal , G Separador de miles | Inserta un salto de lnea

rdenes para generar informes


Orden COLUMN. Formato de columnas Formatos: TRUNCATED: Trunca el contenido de un campo.
COLUMN VENTAS FORMAT A15 TRUNCATED
Slo mostrar los primeros 15 caracteres del campo

VENTAS. Si la longitud del campo VENTAS es mayor de 15, los caracteres a partir de esa posicin no aparecern.

rdenes para generar informes


Orden COLUMN. Formato de columnas Formatos: CLEAR: Borra el formato dado a un campo.
COLUMN VENTAS CLEAR
Si se desean borrar todos los formatos definidos para

los campos usaremos la orden CLEAR COLUMNS.

rdenes para generar informes


Orden BREAK ON. Ruptura de control Esta orden produce una ruptura de control por la

columna que se desee. Esta sentencia hace rupturas en el SELECT de una tabla segn los valores de un campo de dicha tabla. Es muy til en el caso de querer dividir en pequeas tablas una tabla segn el valor que tenga una columna.

rdenes para generar informes


Orden BREAK ON. Ruptura de control

BREAK ON DESCRIPCION SKIP 2


En este ejemplo el campo DESCRIPCION slo se

mostrar una vez, en lugar de aparecer fila a fila. Cuando cambie la descripcin, se har un salto de 2 lneas, especificado en la clusula SKIP. La orden BREAK ON necesita la clusula ORDER BY de la sentencia SELECT para que la salida del listado sea la deseada.

rdenes para generar informes


Orden BREAK ON. Ruptura de control Si aadimos la clusula DUPLICATE aparecer el

campo DESCRIPCION en todas las lneas.

BREAK ON DESCRIPCION DUPLICATE SKIP 2


Todas las rupturas de control definidas se pueden

eliminar con CLEAR BREAKS. Slo puede haber una orden BREAK activa, por lo que si se especifican varias rupturas, han de especificarse todas en una sola orden.

rdenes para generar informes


Orden COMPUTE. Clculos Con esta orden se hacen clculos con grupos de filas

seleccionados.
COMPUTE {SUM,AVG,COUNT,MAX,MIN,STD,VAR,NUM} OF {expresin|campo} ON {expresin|campo}

rdenes para generar informes


Orden COMPUTE. Clculos Opciones:
SUM AVG COUNT MAX MIN STD VAR NUM Calcula la suma Calcula la media Cuenta las filas no nulas Calcula el valor mximo Calcula el valor mnimo Calcula la desviacin estndar Calcula la varianza Cuenta todas la filas (incluidas las no nulas)

rdenes para generar informes


Orden COMPUTE. Clculos OF {expresin|campo}: campo o expresin sobre la que se realizan los clculos. ON {expresin|row|page|report}: indica sobre qu punto de BREAK se introduce el clculo:

expresin: cuando cambia el valor de expresin. row: en cada cambio de registro (fila). page: en cada final de pgina. report: al final de un informe o consulta.

rdenes para generar informes


Orden COMPUTE. Clculos Los totales que calcula COMPUTE son los

especificados en la seccin indicada por BREAK ON. No se puede usar COMPUTE sin BREAK ON. BREAK ON DESCRIPCION SKIP 2 COMPUTE SUM OF VENTAS ON DESCRIPCION COMPUTE SUM OF IMPORTE ON DESCRIPCION

rdenes para generar informes


Orden COMPUTE. Clculos Para saber en cualquier momento cuales son los

BREAK y COMPUTE activos, basta teclear:

SQL> BREAK break on report nodup on ventas nodup


SQL> COMPUTE
COMPUTE SUM LABEL sum OF IMPORTE ON DESCRIPCION COMPUTE SUM LABEL sum OF VENTAS ON REPORT COMPUTE SUM LABEL sum OF VENTAS ON DESCRIPCION

rdenes para generar informes


Orden COMPUTE. Clculos Se puede cambiar la palabra sum que aparece en el

informe indicando las sumas, con la clusula LABEL:


COMPUTE SUM LABEL TOTAL VENTAS OF VENTAS ON REPORT

Para eliminar los puntos de ruptura, los clculos o las

definiciones de campos se usa CLEAR:


SQL>CLEAR BREAKS breaks limpiado SQL>CLEAR COMPUTES computes limpiado SQL>CLEAR COLUMNS columns limpiado

rdenes para generar informes


Orden SPOOL Esta orden posibilita guardar en un archivo toda la

salida que SQL*Plus vaya produciendo por pantalla.

SQL> SPOOL RUTA\NOMBRE_ARCHIVO


Para que pare usaremos la orden SPOOL OFF.
SPOOL C:\reports\listado.lst SELECT * FROM EMPLEADO; SPOOL OFF

rdenes para generar informes


Definicin y uso de variables. DEFINE Y ACCEPT Con SQL*Plus podemos definir variables con la orden

DEFINE, para usarlas despus en un informe.

SQL> DEFINE CABECERA=VENTAS TOTALES


SQL> DEFINE RAYA=============== SQL> DEFINE PIE=Solo Mayo 2009
Para ver la lista de variables definidas se teclea

DEFINE desde el indicador SQL*Plus: SQL> DEFINE

rdenes para generar informes


Definicin y uso de variables. DEFINE Y ACCEPT Podemos usar las variables definidas en el listado:
TTITLE CENTER CABECERA SKIP 1 CENTER RAYA BTITLE LEFT PIE

Para eliminar las variables definidas usaremos la

orden UNDEFINE seguida del nombre de la variable.


SQL> UNDEFINE CABECERA

rdenes para generar informes


Definicin y uso de variables. DEFINE Y ACCEPT Tambin es posible disear un listado que pida

introducir cierta informacin por teclado, como por ejemplo el n de departamento que se va a listar. La introduccin de valores se realiza con ACCEPT.
ACCEPT variable [TIPO DE DATO] [FORMAT formato] [PROMPT texto|NOPROMPT] [HIDE]

rdenes para generar informes


Definicin y uso de variables. DEFINE Y ACCEPT variable es el nombre de la variable que recibe la informacin tecleada. TIPO DE DATO determina el tipo de dato de la variable, por defecto es char. Si se teclea un dato que no corresponde con el tipo especificado se produce un mensaje de error y vuelve a pedir la entrada. FORMAT formato define el formato para el contenido de la variable.

rdenes para generar informes


Definicin y uso de variables. DEFINE Y ACCEPT PROMPT texto muestra el texto al usuario antes de teclear los datos. NOPROMPT salta una lnea y espera la entrada. HIDE es til para contraseas, al escribir el dato se visualizarn asteriscos.

rdenes para generar informes


Definicin y uso de variables. DEFINE Y ACCEPT
PROMPT Proporcione los siguientes datos ACCEPT nom_usuario char DEFAULT invitado PROMPT Usuario: ACCEPT pwd char PROMPT contrasea:' HIDE ACCEPT num_emp number FORMAT '99999' PROMPT 'Nmero de empleado:' ACCEPT fecha_inf date FORMAT 'yyyy/mm/dd' PROMPT 'Fecha de informe:'

rdenes para generar informes


Definicin y uso de variables. DEFINE Y ACCEPT Al usar variables en una consulta SELECT, el nombre

de la variable debe llevar un ampersand (&) delante. Si la variable se define como CHAR debe ir encerrada entre comillas simples.
SQL> SELECT * FROM EMPLEADO WHERE N_EMPLEADO = &num_emp AND USUARIO = &nom_usuario;

rdenes para generar informes


Definicin y uso de variables. DEFINE Y ACCEPT Cuando se usa la orden ACCEPT para introducir

datos por teclado, la variable queda definida y podremos verla con DEFINE. Existe la posibilidad de usar el ampersand como prefijo delante de una variable que no est definida, en este caso se interpreta la entrada de teclado pero no se almacena su valor.
SQL> SELECT * FROM EMPLEADO WHERE DPTO = &NUMDPTO;

Donde NUMDPTO no esta definida previamente.

Вам также может понравиться