Page 1

Profesor: Ezio Quispe Fernández Programa de Computación e Informática

“BASE DE DATOS II” Código: CC50 Ciclo Académico: V Ciclo Duración: 20 semanas Horas semanales: 4 horas (02 Teoría – 02 Práctica) Código curricular: CC19

TEMA

Guía 09: (1) Introducción al PL –SQL

:: IDAT:: Programa Académico de Computación e Informática::

1


Profesor: Ezio Quispe Fernández

PL/SQL (Introducción) PL/SQL es una extensión procedural de Oracle para SQL, en lenguaje estándar de acceso a bases de datos, que, como SQL, tiene tratamiento interno del dominio de la base de datos. Las aplicaciones escritas en cualquier interface de programación pueden usar los procedimientos almacenados y funciones escritas en PL/SQL En PL/SQL, usted puede manipular datos con sentencias SQL y controlar el flujo de la programación con construcciones procedurales como lazos. Usted puede incluso hacer lo siguiente:  Declarar constantes y variables  Definir procedimientos y funciones  Usar tipos de objetos y colecciones  Capturar errores de ejecución  Crear funciones, paquetes, procedimientos, y disparadores

Objetos de Bases de datos Usted necesita crear objetos de bases de datos para empezar a desarrollar su aplicación. Estos objetos de bases de datos son usados primeramente para almacenar y organizar los datos que su aplicación manipulará. Estos objetos de bases de datos incluyen tablas, indices, vistas, secuencias y sinónimos. Cuando se crea algún objeto, usted necesita especificar el tipo de datos para el dato que es usado por el objeto. Cuando usted crea una tabla, debe especificar un tipo de datos por cada una de sus columnas. Un tipo de datos asocia un conjunto de propiedades con el valor que puede ser usado en una columna, o en un argumento de un procedimiento o función. Cada valor y constante de un columna en una sentencia SQL tiene un tipo de dato, que es asociado con un formato de almacenamiento específico, contructor, y rango de valores válidos. Los tipos de datos más comunes son caracteres, numéricos y fecha.

:: IDAT:: Programa Académico de Computación e Informática::

2


Profesor: Ezio Quispe Fernández

La línea de comandos SQL El SQL*Plus es la línea de comandos SQL para acceder a bases de datos ORACLE. Permite ingresar y ejecutar comandos y sentencias SQL, PL/SQL, y SQL*Plus para:  Consultar, insertar y actualizar datos.  Ejecutar procedimientos PL/SQL.  Examinar definiciones de tablas y objetos.  Desarrollar y ejecutar scripts en lote.  Ejecutar la administración de bases de datos. Usted puede usar SQL*Plus para generar reportes interactivamente, generar reportes como procesos en lotes, y para escribir los resultados hacia un archivo de texto, a la pantalla o hacia un archivo HTML para ser navegado en Internet. Para iniciar la línea de comandos SQL digite lo siguiente en el DOS: sqlplus (enter) Cuando se le pida ingresar el usuario y contraseña, debe ingresarlos para poder acceder a la base de datos. Por ejemplo HR y (clave) También puede incluir en nombre y contraseña en el DOS: sqlplus HR/miclave Si usted quiere conectarse a una base de datos en un sistema remoto: sqlplus HR/miclave@servidorRemoto Luego que ingrese vera lo siguiente: SQL> Lo anterior es el apuntador y en él puede escribir sus sentencias SQL Para salir del SQL *Plus debe digitar EXIT Para visualizar la ayuda digite: HELP INDEX Para visualizar la ayuda de un tópico específico debe digitar (por ejemplo COLUMN): HELP COLUMN

:: IDAT:: Programa Académico de Computación e Informática::

3


Profesor: Ezio Quispe Fernández

Ingresando Sentencias SQL en la Línea de comandos SQL Para ingresar y ejecutar sentencias y comandos SQL, ingrese la sentencia o comando en el apuntador del SQL. Al final de la sentencia ponga un punto y coma (;) y luego presione la tecla Enter. Por ejemplo: SQL> SELECT * FROM employees; Si la sentencia no entra un una línea, entonces presione la tecla ENTER y al terminar la última línea coloque el signa (;) y la tecla Enter. Por ejemplo: SQL> SELECT employee_id, first_name, last_name 2 FROM employees 3 WHERE employee_id >= 105 AND employee_id <= 110; La salida de la sentencia SELECT anterior arroja un resultado como el siguiente: EMPLOYEE_ID ----------105 106 107 108 109 110 6 rows selected.

FIRST_NAME -------------------David Valli Diana Nancy Daniel John

LAST_NAME ----------------------Austin Pataballa Lorentz Greenberg Faviet Chen

Pruebe la siguiente: SQL> DESCRIBE employees Para ejecutar un script: SQL> @c:\mi_scripts\mi_sql_script.sql SQL> START miarchivo.sql

:: IDAT:: Programa Académico de Computación e Informática::

4


Profesor: Ezio Quispe Fernández

Usando variables dinámicas Puede usar el símbolo (&) para definir e identificar una variable dinámicamente. Ejemplo: SQL> SELECT employee_id, last_name, job_id FROM employees WHERE employee_id = &cod; En el ejemplo anterior cod es el nombre de la variable dinámica que el SQL *Plus pide al usuario en forma dinámica y, con lo que se digite se ejecuta la sentencia dentro de la cual está la definición de la variable dinámica, que, en nuestro ejemplo es, cod. Pruebe con el valor 107 (debe obtener los datos de Diana Lorente)

Reutilizar una variable en una consulta Use && para usar unas variable dinámica múltiples veces pero que solo se pida al usuario una única vez. Ejemplo: SQL> SELECT employee_id, last_name, &&col FROM employees ORDER BY &&col; Pruebe el ejemplo anterior con email

Definir una variable en una consulta Use el comando DEFINE para que una variable contenga un valor específico y pueda ser usada posteriormente. Ejemplo: SQL> DEFINE job = "ST_CLERK" SELECT employee_id, last_name FROM employees WHERE job_id = '&job';

:: IDAT:: Programa Académico de Computación e Informática::

5


Profesor: Ezio Quispe Fernández

Script Files SQL*Plus provee de instrucciones tanto para guardar el buffer SQL en un fichero como para ejecutar instrucciones desde el propio fichero. Los SQL almacenados en un fichero son llamados scrips. Para guardar en el sistema operativo: SAVE <fichero> -- Por defecto no sobrescribe. Utilizar REPLACE para ello. La extensión por defecto será sql Con EDIT <fichero> editaremos un fichero Con GET <fichero> llevamos el contenido de un fichero al buffer Con START <fichero> (o @ <fichero>) ejecutamos el fichero @@<fichero> dentro de un fichero ejecuta el fichero <fichero> dentro del directorio donde se está ejecutando Hay dos tipos de comentarios que podemos utilizar en el fichero: REMARKS (REM) o /* */ Las líneas marcadas con REM no aparecerán cuando se ejecute el código. Las marcadas con /* */ sí

Personalización Muchos de los parámetros de SQL*Plus se pueden personalizar mediante la instrucción SET. Se puede guardar la personalización actual con la instrucción: STORE SET <fichero>.

:: IDAT:: Programa Académico de Computación e Informática::

6


Profesor: Ezio Quispe Fernández

Producir una salida más legible Con SQL*Plus es posible: - Definir el tamaño de una columna - Visualizar cabeceras con sentido - Formatear números y fechas - “Envolver” la información Con la instrucción siguiente comprobamos el estado del tamaño de pantalla SQL> show pagesize lines Con la siguiente, modificamos dichos tamaños SQL> SET PAGESIZE 78 LINESIZE 55 Deshabilitamos la respuesta de la Quero, donde nos dice el número de filas mostradas SQL> SET FEEDBACK OFF Renombramos una columna. La barra vertical hace que el nombre de la columna aparezca en dos filas COLUMN ENAME HEADING "Employee|Name" Cambiar la cabecera y el formato: COLUMN sal FORMAT "$9,999" HEADING "Salary" Copiar un formato de otra columna COLUMN COMM LIKE SAL HEADING "Incentive".

:: IDAT:: Programa Académico de Computación e Informática::

7


Profesor: Ezio Quispe Fernández

Aceptar valores en tiempo de ejecución Con el & le indicamos que lo que viene a continuación es una variable. Si ejecutamos un fichero con el texto: SELECT empno, ename FROM emp WHERE deptno = &dept; Nos pedirá el valor de dept: Enter value for dept: 10 También se puede definir el valor antes: SQL> DEFINE dept = 10 SQL> l 1 SELECT empno, ename 2 FROM emp 3* WHERE deptno = &dept SQL> / Si tenemos un fichero llamado query1 con el texto SELECT empid, ename FROM emp WHERE deptno = &1 AND empid = &2; Podemos ejecutarlo: SQL> START query1 10 732 Con ACCEPT podemos asignar un texto a una solicitud de valor: ACCEPT DEPTNUMB NUMBER PROMPT "Enter Department Number: "

:: IDAT:: Programa Académico de Computación e Informática::

8


Profesor: Ezio Quispe Fernández

SINTAXIS SQL PLUS @ (arroba) Sintaxis @{url[.ext] } [arg...] Llama y ejecuta el archivo de comandos especificado por la dirección URL desde un servidor Web. Ejemplos Puede ejecutar un archivo de comandos denominado YEAREND especificado por una dirección URL y transferir valores a las variables de referencia de YEAREND de la forma habitual: @HTTP://nombre_máquina.dominio:puerto/YEAREND.SQL VAL1 VAL2 @FTP://nombre_máquina.dominio:puerto/YEAREND.SQL VAL1 VAL2

En un servidor Web configurado para servir informes SQL, puede solicitar que SQL*Plus ejecute un archivo de comandos dinámico con: @HTTP://nombre_máquina.dominio:puerto/SCRIPTSERVER?ENDOFYEAR VAL1 VAL2

:: IDAT:: Programa Académico de Computación e Informática::

9


Profesor: Ezio Quispe Fernández

@@ (doble arroba) Sintaxis @@{url | nombre_archivo[.ext] } [arg...] Ejecuta un archivo de comandos. Este comando es prácticamente idéntico al comando @ (arroba). Si ejecuta archivos de comandos anidados busca los archivos de comandos anidados en la misma dirección url que el archivo de comandos desde el que se ha llamado. Ejemplos Si tiene el siguiente archivo de comandos denominado PRINTRPT: SELECT DEPARTMENT_ID, CITY FROM EMP_DETAILS_VIEW WHERE SALARY>12000; @EMPRPT.SQL @@ WKRPT.SQL Si el mismo archivo de comandos PRINTRPT estaba ubicado en un servidor Web y lo ha ejecutado con START HTTP://nombre_máquina.dominio:puerto/PRINTRPT. Cuando alcanza el comando @, busca el archivo de comandos denominado EMPRPT en el directorio de trabajo actual y lo ejecuta. Cuando PRINTRPT alcanza el comando @@, busca el archivo de comandos denominado WKRPT en la misma url que PRINTRPT, HTTP://nombre_máquina.dominio:puerto/WKRPT.SQL y lo ejecuta.

:: IDAT:: Programa Académico de Computación e Informática::

10


Profesor: Ezio Quispe Fernández

/ (barra) Sintaxis / (barra) Ejecuta el comando SQL o bloque PL/SQL ejecutado más recientemente almacenado actualmente en el buffer SQL. Ejemplos Introduzca el siguiente archivo de comandos SQL: SELECT CITY, COUNTRY_NAME FROM EMP_DETAILS_VIEW WHERE SALARY=12000; Introduzca una barra (/) para volver a ejecutar el comando en el buffer: / CITY COUNTRY_NAME ------------------------------ ---------------------------------------Seattle United States of America Oxford United Kingdom Seattle United States of America

:: IDAT:: Programa Académico de Computación e Informática::

11


Profesor: Ezio Quispe Fernández

ACCEPT Sintaxis ACC[EPT] variable [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE] [FOR[MAT] formato] [DEF[AULT] valor por defecto] [PROMPT texto|NOPR[OMPT]] [HIDE] Lee una línea de entrada y la almacena en una variable de sustitución proporcionada. Ejemplos Para mostrar el prompt "Password: ", colocar la respuesta en una variable CHAR denominada PSWD y suprimir la pantalla, introduzca ACCEPT pswd CHAR PROMPT 'Password: ' HIDE Para mostrar el prompt "Enter weekly salary:" y colocar la respuesta en una variable NUMBER denominada SALARY con un valor por defecto de 000.0, introduzca ACCEPT salary NUMBER FORMAT '999.99' DEFAULT '000.0' PROMPT 'Enter weekly salary: ' Para mostrar el prompt "Enter date hired: " y colocar la respuesta en una variable DATE denominada HIRED con el formato "dd/mm/aaaa" y un valor por defecto de "01/01/03", introduzca ACCEPT hired DATE FORMAT 'dd/mm/yyyy' DEFAULT '01/01/2003'PROMPT 'Enter date hired: ' Para mostrar el prompt "Enter employee lastname: " y colocar la respuesta en una variable CHAR denominada LASTNAME, introduzca ACCEPT lastname CHAR FORMAT 'A20' PROMPT 'Enter employee lastname: '

:: IDAT:: Programa Académico de Computación e Informática::

12


Profesor: Ezio Quispe Fernández

ARCHIVE LOG Sintaxis ARCHIVE LOG {LIST | STOP} | {START | NEXT | ALL | entero } [TO destino] Inicia o para el archivado automático de archivos redo log en línea, archiva manualmente (de forma explícita) los archivos redo log especificados o muestra información sobre archivos redo log. Ejemplos Para iniciar el proceso de archivado y comenzar el archivado automático, mediante el destino de archivado especificado en LOG_ARCHIVE_DEST, introduzca ARCHIVE LOG START Para parar el archivado automático, introduzca ARCHIVE LOG STOP Para archivar el grupo de archivos log con el número de secuencia 1001 en el destino especificado, introduzca ARCHIVE LOG 1001 '/vobs/oracle/dbs/arch' 'arch' especifica el prefijo del nombre de archivo en el dispositivo de destino. El resto del nombre de archivo depende del parámetro de inicialización LOG_ARCHIVE_FORMAT, que especifica el formato del nombre de archivos redo log archivados.

:: IDAT:: Programa Académico de Computación e Informática::

13


Profesor: Ezio Quispe Fernández

ATTRIBUTE Sintaxis ATTRIBUTE [nombre_tipo.nombre_atributo [opción ...]] donde opción representa una de las siguientes cláusulas: ALI[AS] alias CLE[AR] FOR[MAT] formato LIKE {nombre_tipo.nombre_atributo | alias} ON | OFF Especifica las características de visualización de un atributo proporcionado de la columna Tipo de Objeto, como, por ejemplo, el formato de los datos NUMBER. Las columnas y los atributos no deben tener los mismos nombres, ya que comparten un espacio de nombre común. También enumera las características de visualización actuales de un solo atributo o de todos los atributos. Ejemplos Para ampliar el atributo LAST_NAME del tipo de objeto EMPLOYEE_TYPE a 20 caracteres, introduzca ATTRIBUTE EMPLOYEE_TYPE.LAST_NAME FORMAT A20 Para formatear el atributo SALARY del tipo de objeto EMPLOYEE_TYPE de forma que muestre millones de dólares, redondee a centavos, utilice puntos para separar las unidades de millar y muestre $0,00 cuando un valor sea cero, introduzca ATTRIBUTE EMPLOYEE_TYPE.SALARY FORMAT $9.999.990,99

:: IDAT:: Programa Académico de Computación e Informática::

14


Profesor: Ezio Quispe Fernández

BREAK Sintaxis BRE[AK] [ON elemento_informe [acción [acción]]] ... donde elemento_informe tiene la sintaxis {columna|expr|ROW|REPORT} y acción tiene la sintaxis [SKI[P] n|[SKI[P]] PAGE] [NODUP[LICATES]|DUP[LICATES]] Especifica dónde se producen los cambios en un informe y la acción de formato que se va a realizar, por ejemplo:   

la supresión de la visualización de valores duplicados para una columna determinada el salto de una línea cada vez que cambia el valor de una columna (En iSQL*Plus, sólo si Salida Preformateada está ACTIVADA) la impresión de cifras calculadas cada vez que cambia el valor de una columna determinada o al final del informe

Introduzca BREAK sin cláusulas para mostrar la definición de BREAK actual. Ejemplos Para crear un informe que imprima valores de trabajo duplicados, que imprima la media de SALARY y además imprima el total de SALARY, puede introducir los siguientes comandos. (El ejemplo selecciona sólo los departamentos 50 y 80 y los trabajos de oficina y comercial.) BREAK ON DEPARTMENT_ID ON JOB_ID DUPLICATES COMPUTE SUM OF SALARY ON DEPARTMENT_ID COMPUTE AVG OF SALARY ON JOB_ID SELECT DEPARTMENT_ID, JOB_ID, LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE JOB_ID IN ('SH_CLERK', 'SA_MAN') AND DEPARTMENT_ID IN (50, 80) ORDER BY DEPARTMENT_ID, JOB_ID;

:: IDAT:: Programa Académico de Computación e Informática::

15


Profesor: Ezio Quispe Fernández

DEPARTMENT_ID JOB_ID LAST_NAME ------------- ---------- ------------------------- ---------50 SH_CLERK Taylor 3200 SH_CLERK Fleaur 3100 . . . SH_CLERK Gates 2900

SALARY

DEPARTMENT_ID JOB_ID LAST_NAME ------------- ---------- ------------------------- ---------50 SH_CLERK Perkins 2500 SH_CLERK Bell 4000 . . . SH_CLERK Grant 2600 ********** ---------avg 3215

SALARY

DEPARTMENT_ID JOB_ID LAST_NAME ------------- ---------- ------------------------- ----------

SALARY

************* sum 80 SA_MAN SA_MAN SA_MAN SA_MAN SA_MAN ********** avg

---------64300 Russell Partners Errazuriz Cambrault Zlotkey

14000 13500 12000 11000 10500 ---------12200

DEPARTMENT_ID JOB_ID LAST_NAME ------------- ---------- ------------------------- ---------************* sum

SALARY

---------61000

25 rows selected.

:: IDAT:: Programa Académico de Computación e Informática::

16


Profesor: Ezio Quispe Fernández

BTITLE Sintaxis BTI[TLE] [especimpr [texto | variable] ...] | [ON | OFF] donde especimpr representa una o más de las siguientes cláusulas utilizadas para incluir y formatear el texto: BOLD CE[NTER] COL n FORMAT texto LE[FT] R[IGHT] S[KIP] [n] TAB n Incluye y formatea un título especificado en la parte inferior de cada página del informe o muestra la definición actual de BTITLE. Ejemplos Para definir un título inferior con DEPARTAMENTO DE PLANIFICACIÓN a la izquierda y una fecha a la derecha, introduzca BTITLE LEFT 'CORPORATE PLANNING DEPARTMENT' RIGHT '1 JAN 2001'

Para definir un título inferior con CONFIDENTIAL en la columna 50, seguido de seis espacios y una fecha, introduzca BTITLE COL 50 'CONFIDENTIAL' TAB 6 '1 JAN 2001' :: IDAT:: Programa Académico de Computación e Informática::

17


Profesor: Ezio Quispe Fernández

CLEAR Sintaxis CL[EAR] opción ... donde opción representa una de las siguientes cláusulas: BRE[AKS] BUFF[ER] COL[UMNS] COMP[UTES] SQL TIMI[NG] Restablece o borra el valor actual de la opción especificada. Ejemplos Para limpiar rupturas, introduzca CLEAR BREAKS Para limpiar definiciones de columna, introduzca CLEAR COLUMNS

:: IDAT:: Programa Académico de Computación e Informática::

18


Profesor: Ezio Quispe Fernández

COLUMN Sintaxis COL[UMN] [{columna | expr} [opción ...]] donde opción representa una de las siguientes cláusulas: ALI[AS] alias CLE[AR] ENTMAP {ON | OFF} FOLD_A[FTER] FOLD_B[EFORE] FOR[MAT] formato HEA[DING] texto JUS[TIFY] {L[EFT] | C[ENTER] | R[IGHT]} LIKE {expr | alias} NEWL[INE] NEW_V[ALUE] variable NOPRI[NT] | PRI[NT] NUL[L] texto OLD_V[ALUE] variable ON | OFF WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED] Especifica los atributos de visualización de una columna determinada, como, por ejemplo:    

el texto de la cabecera de columna la alineación de la cabecera de columna el formato de los datos NUMBER el ajuste de los datos de la columna

También enumera los atributos de visualización actuales de una sola columna o de todas las columnas.

:: IDAT:: Programa Académico de Computación e Informática::

19


Profesor: Ezio Quispe Fernández

Formatos Numéricos La tabla 5-1 muestra los formatos que se pueden utilizar en la cláusula COLUMN FORMAT y en SET NUMFORMAT.

Formatos Numéricos Elemento Ejemplos

Descripción

. (punto) 9,999

Muestra un punto en la posición especificada.

, (coma)

99.99

Muestra una coma (coma decimal) para separar la parte entera de un número de la fraccionaria.

$

$9999

Muestra un signo de dólar inicial.

0

0999 9990 Muestra ceros iniciales y finales.

9

9999

Muestra un valor con el número de dígitos especificado por el número de nueves. El valor tiene un espacio inicial si es positivo y un signo menos delante si es negativo. Se muestran espacios en blanco para los ceros iniciales. Se muestra un cero (0) cuando el valor es cero.

B

B9999

Muestra espacios en blanco en la parte entera de un número con coma cuando la parte entera es cero, independientemente del número de ceros del modelo de formato.

C

C999

Muestra el símbolo de divisa ISO en la posición especificada.

D

99D99

Muestra el carácter decimal para separar la parte entera de un número de la fraccionaria.

EEEE

9,999EEEE Muestra el valor en notación científica (el formato debe incluir exactamente cuatro letras "E").

G

9G999

Muestra el separador de grupo en las posiciones especificadas de la parte entera de un número.

L

L999

Muestra el símbolo de divisa local en la posición especificada.

MI

9999MI

Muestra un signo menos final después de un valor negativo. Muestra un espacio final detrás de un valor positivo.

PR

9999PR

Muestra un valor negativo entre <paréntesis angulares >. Muestra un valor positivo con un espacio final y otro inicial.

:: IDAT:: Programa Académico de Computación e Informática::

20


Profesor: Ezio Quispe Fernández

Elemento Ejemplos

Descripción

RN rn

RN rn

Muestra números romanos en mayúscula. Muestra números romanos en minúscula. El valor puede ser un número entero entre 1 y 3999.

S

S9999 9999S

Muestra un signo menos o un signo más iniciales. Muestra un signo menos o un signo más finales.

TM

TM

Muestra el menor número posible de caracteres decimales. El valor por defecto es TM9. La notación fija se utiliza para obtener resultados de hasta 64 caracteres y la notación científica para más de 64 caracteres. No se puede incluir ningún otro elemento delante de TM. Detrás de TM sólo puede ir un 9 o una E.

U

U9999

Muestra el signo de divisa doble en la posición especificada.

V

999V99

Muestra el valor multiplicado por 10n, donde n es el número de nueves que aparecen detrás de la V.

X

XXXX xxxx

Muestra el valor hexadecimal correspondiente redondeado del número de dígitos especificado.

al

valor

Ejemplos Para ampliar la columna LAST_NAME a 20 caracteres y visualizar EMPLOYEE NAME en dos líneas como cabecera de columna, introduzca COLUMN LAST_NAME FORMAT A20 HEADING 'EMPLOYEE|NAME' Para formatear la columna SALARY de forma que muestre millones de dólares, redondee a centavos, utilice puntos para separar las unidades de millar y muestre $0,00 cuando un valor sea cero, introduzca COLUMN SALARY FORMAT $9.999.990,99 Para asignar el alias NET a una columna que contenga una expresión larga, visualizar el resultado en dólares y que aparezca <NULL> para los valores nulos, debe introducir COLUMN SALARY+COMMISSION_PCT+BONUS-EXPENSES-INS-TAX ALIAS NET COLUMN NET FORMAT $9.999.999,99 NULL '<NULL>'

:: IDAT:: Programa Académico de Computación e Informática::

21


Profesor: Ezio Quispe Fernández

Tenga en cuenta que el ejemplo divide esta especificación de columna en dos comandos. El primero define el alias NET y el segundo utiliza NET para definir el formato. Tenga en cuenta también que en el primer comando debe introducir la expresión exactamente igual que en el comando SELECT. De lo contrario, SQL*Plus no podrá hacer coincidir el comando COLUMN con la columna adecuada. Para ajustar valores largos en una columna denominada REMARKS, puede introducir COLUMN REMARKS FORMAT A20 WRAP CUSTOMER DATE QUANTITY REMARKS ---------- --------- -------- -------------------123 25-AUG-2001 144 This order must be shipped by air freight to ORD

Para imprimir la fecha actual y el nombre de cada trabajo en el título superior, introduzca lo siguiente. Utilice la tabla EMPLOYEES del esquema HR en lugar de EMP_DETAILS_VIEW. COLUMN JOB_ID NOPRINT NEW_VALUE JOBVAR COLUMN TODAY NOPRINT NEW_VALUE DATEVAR BREAK ON JOB_ID SKIP PAGE ON TODAY TTITLE CENTER 'Job Report' RIGHT DATEVAR SKIP 2 LEFT 'Job: ' JOBVAR SKIP 2 SELECT TO_CHAR(SYSDATE, 'MM/DD/YYYY') TODAY, LAST_NAME, JOB_ID, MANAGER_ID, HIRE_DATE, SALARY, DEPARTMENT_ID FROM EMPLOYEES WHERE JOB_ID IN ('MK_MAN', 'SA_MAN') ORDER BY JOB_ID, LAST_NAME;

Para cambiar el formato por defecto de las columnas DATE a 'AAAA-MM-DD', puede introducir ALTER SESSION SET NLS_DATE_FORMAT = 'AAAA-MM-DD'; Sesión modificada.

:: IDAT:: Programa Académico de Computación e Informática::

22


Profesor: Ezio Quispe Fernández

COMPUTE Sintaxis COMP[UTE] [función [LAB[EL] texto] ... OF {expr | columna | alias} ... ON {expr | columna | alias | REPORT | ROW} ...] Junto con el comando BREAK, calcula e imprime las líneas de resumen, utilizando diferentes cálculos estándar, en subjuegos de filas seleccionadas. También muestra todas las definiciones de COMPUTE. Ejemplos Para obtener el subtotal del salario de las clasificaciones de trabajo, "gestor de cuentas", AC_MGR, y "comercial", SA_MAN, con la etiqueta de cálculo "TOTAL", introduzca BREAK ON JOB_ID SKIP 1; COMPUTE SUM LABEL 'TOTAL' OF SALARY ON JOB_ID; SELECT JOB_ID, LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE JOB_ID IN ('AC_MGR', 'SA_MAN') ORDER BY JOB_ID, SALARY; JOB_ID LAST_NAME SALARY ---------- ------------------------- ---------AC_MGR Higgins 12000 ********** ---------TOTAL 12000 SA_MAN Zlotkey 10500 Cambrault 11000 Errazuriz 12000 Partners 13500 Russell 14000 ********** ---------TOTAL 61000 6 rows selected.

:: IDAT:: Programa Académico de Computación e Informática::

23


Profesor: Ezio Quispe Fernández

Para calcular el salario medio y máximo de los departamentos ejecutivo y de contabilidad, introduzca BREAK ON DEPARTMENT_NAME SKIP 1 COMPUTE AVG LABEL 'Dept Average' MAX LABEL 'Dept Maximum' OF SALARY ON DEPARTMENT_NAME SELECT DEPARTMENT_NAME, LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE DEPARTMENT_NAME IN ('Executive', 'Accounting') ORDER BY DEPARTMENT_NAME; DEPARTMENT_NAME LAST_NAME SALARY ------------------------------ ------------------------- ---------Accounting Higgins 12000 Gietz 8300 ****************************** ---------Dept Average 10150 Dept Maximum 12000 Executive

King Kochhar De Haan ****************************** Dept Average Dept Maximum

24000 17000 17000 ---------19333.3333 24000

Para sumar los salarios de los departamentos <= 20 sin imprimir la etiqueta de cálculo, introduzca COLUMN DUMMY NOPRINT COMPUTE SUM OF SALARY ON DUMMY BREAK ON DUMMY SKIP 1 SELECT DEPARTMENT_ID DUMMY, DEPARTMENT_ID, LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE DEPARTMENT_ID <= 20 ORDER BY DEPARTMENT_ID;

:: IDAT:: Programa Académico de Computación e Informática::

24


Profesor: Ezio Quispe Fernández

DEPARTMENT_ID LAST_NAME ------------- ------------------------- ---------10 Whalen 4400 ---------4400 20 Hartstein 20 Fay

SALARY

13000 6000 ---------19000

:: IDAT:: Programa Académico de Computación e Informática::

25


Profesor: Ezio Quispe Fernández

CONNECT Sintaxis CONN[ECT] [{ conexión | / } [AS {SYSOPER | SYSDBA}]] donde conexión tiene la sintaxis nombre_usuario[/contraseña] [@identificador_conexión] Conecta un determinado nombre de usuario a la base de datos Oracle. Al ejecutar un comando CONNECT, se ejecuta el perfil de la ubicación, glogin.sql. El comando CONNECT no vuelve a solicitar el nombre de usuario ni la contraseña si la conexión inicial no se realiza correctamente.

Advertencia: La introducción de contraseñas en texto sin formato puede implicar riesgos de seguridad. Puede evitarlo omitiendo la contraseña e introduciéndola sólo cuando los solicite el sistema.

Ejemplos Para conectar a través de Red de Oracle con el nombre de usuario HR a la base de datos conocida por el alias de Red de Oracle como FLEETDB, introduzca CONNECT HR@FLEETDB

:: IDAT:: Programa Académico de Computación e Informática::

26


Profesor: Ezio Quispe Fernández

DEFINE Sintaxis DEF[INE] [variable] | [variable = texto] Especifica una variable de usuario o predefinida y le asigna un valor CHAR o muestra el valor y el tipo de una sola variable o de todas. Ejemplos Para asignar el valor MANAGER a la variable POS, escriba: DEFINE POS = MANAGER Si ejecuta un comando que contiene una referencia a &POS, SQL*Plus sustituirá el valor MANAGER de &POS y no le pedirá un valor de POS. Para asignar el valor CHAR 20 a la variable DEPARTMENT_ID, escriba: DEFINE DEPARTMENT_ID = 20 Aunque introduzca el número 20, SQL*Plus asigna un valor CHAR a DEPARTMENT_ID que consta de dos caracteres, 2 y 0. Para ver la definición de DEPARTMENT_ID, introduzca DEFINE DEPARTMENT_ID DEFINE DEPARTMENT_ID = "20" (CHAR)

Este resultado muestra que el valor de DEPARTMENT_ID es 20.

:: IDAT:: Programa Académico de Computación e Informática::

27


Profesor: Ezio Quispe Fernández

DESCRIBE Sintaxis DESC[RIBE] {[esquema.]objeto[@identificador_conexión]} Muestra las definiciones de columna de la tabla, la vista o el sinónimo especificados o las especificaciones de la función o procedimiento especificado. Ejemplos Para describir la vista EMP_DETAILS_VIEW, introduzca DESCRIBE EMP_DETAILS_VIEW Name Null? Type ----------------------------------------- -------- ---------------EMPLOYEE_ID NOT NULL NUMBER(6) JOB_ID NOT NULL VARCHAR2(10) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4) LOCATION_ID NUMBER(4) COUNTRY_ID CHAR(2) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) DEPARTMENT_NAME NOT NULL VARCHAR2(30) JOB_TITLE NOT NULL VARCHAR2(35) CITY NOT NULL VARCHAR2(30) STATE_PROVINCE VARCHAR2(25) COUNTRY_NAME VARCHAR2(40) REGION_NAME VARCHAR2(25)

Para describir un procedimiento denominado CUSTOMER_LOOKUP, introduzca DESCRIBE customer_lookup PROCEDURE customer_lookup Argument Name Type In/Out Default? :: IDAT:: Programa Académico de Computación e Informática::

28


Profesor: Ezio Quispe Fernández

---------------------- -------- -------- --------CUST_ID NUMBER IN CUST_NAME VARCHAR2 OUT

Para crear y describir el paquete APACK que contiene los procedimientos aproc y bproc, introduzca CREATE PACKAGE apack AS PROCEDURE aproc(P1 CHAR, P2 NUMBER); PROCEDURE bproc(P1 CHAR, P2 NUMBER); END apack; / Paquete creado. DESCRIBE apack PROCEDURE APROC Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------P1 CHAR IN P2 NUMBER IN PROCEDURE BPROC Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------P1 CHAR IN P2 NUMBER IN

:: IDAT:: Programa Académico de Computación e Informática::

29


Profesor: Ezio Quispe Fernández

DISCONNECT Sintaxis DISC[ONNECT] Valida los cambios pendientes en la base de datos y desconecta al usuario actual de Oracle, pero no sale de iSQL*Plus. Ejemplos El archivo de comandos puede empezar con el comando CONNECT y terminar con DISCONNECT, como se muestra más adelante. CONNECT HR SELECT LAST_NAME, DEPARTMENT_NAME FROM EMP_DETAILS_VIEW; DISCONNECT SET INSTANCE FIN2 CONNECT HR2

:: IDAT:: Programa Académico de Computación e Informática::

30


Profesor: Ezio Quispe Fernández

EXECUTE Sintaxis EXEC[UTE] sentencia donde sentencia representa una sentencia PL/SQL. Ejecuta una sola sentencia PL/SQL. El comando EXECUTE es útil cuando desea ejecutar una sentencia PL/SQL que hace referencia a un procedimiento almacenado. Ejemplos Si la variable :n se ha definido con: VARIABLE n NUMBER El comando EXECUTE asigna un valor a la variable ligada n: EXECUTE :n := 1 PL/SQL procedure successfully completed.

:: IDAT:: Programa Académico de Computación e Informática::

31


Profesor: Ezio Quispe Fernández

EXIT Sintaxis {EXIT | QUIT} [SUCCESS | FAILURE | WARNING | n | variable | :VariableLigada] [COMMIT | ROLLBACK] Valida o realiza un rollback de todos los cambios pendientes, deja de procesar el archivo de comandos de iSQL*Plus y se vuelve a centrar en el área de entrada. No se puede acceder al código de retorno en iSQL*Plus. En iSQL*Plus, haga clic en el botón Desconectar para desconectarse de la base de datos Oracle. La validación al salir o al terminar el proceso en iSQL*Plus se realiza independientemente del estado de SET AUTOCOMMIT. Ejemplos El siguiente ejemplo valida todas las transacciones no validadas y devuelve el código de error del último comando SQL o bloque PL/SQL ejecutado: EXIT SQL.SQLCODE

:: IDAT:: Programa Académico de Computación e Informática::

32


Profesor: Ezio Quispe Fernández

HELP Sintaxis HELP | ? [tema] donde tema representa un tema de ayuda de SQL*Plus, por ejemplo, COLUMN. Accede al sistema de ayuda de la línea de comandos de SQL*Plus. Introduzca HELP INDEX o ? INDEX para obtener una lista de temas. Puede ver los recursos de SQL*Plus en http://www.oracle.com/technology/tech/sql_plus/ y de Oracle Database Library en http://www.oracle.com/technology/documentation/. En iSQL*Plus, haga clic en el icono Ayuda para acceder a la Ayuda en Pantalla de iSQL*Plus. Ejemplos Para ver una lista de comandos de SQL*Plus para los que está disponible la ayuda, introduzca HELP INDEX o ? INDEX

Para ver una única lista de columnas de comandos de SQL*Plus para los que está disponible la ayuda, introduzca HELP TOPICS

:: IDAT:: Programa Académico de Computación e Informática::

33


Profesor: Ezio Quispe Fernández

LIST Sintaxis L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST] Muestra una o más líneas del buffer SQL. Ejemplos Para ver el contenido del buffer, introduzca LIST o bien ; 1 SELECT LAST_NAME, DEPARTMENT_ID, JOB_ID 2 FROM EMP_DETAILS_VIEW 3 WHERE JOB_ID = 'SH_CLERK' 4* ORDER BY DEPARTMENT_ID

El asterisco indica que la línea 4 es la línea actual. Para ver sólo la segunda línea, introduzca LIST 2 Aparece la segunda línea: 2* FROM EMP_DETAILS_VIEW

:: IDAT:: Programa Académico de Computación e Informática::

34


Profesor: Ezio Quispe Fernández

PAUSE Sintaxis PAU[SE] [texto] donde texto representa el texto que desea visualizar. Muestra el botón Página Siguiente en el que el usuario debe hacer clic para continuar.

:: IDAT:: Programa Académico de Computación e Informática::

35


Profesor: Ezio Quispe Fernández

PRINT Sintaxis PRI[NT] [variable ...] donde variable ... representa los nombres de las variables ligadas cuyos valores desea mostrar. Muestra los valores actuales de las variables ligadas. Ejemplos El siguiente ejemplo ilustra el comando PRINT: VARIABLE n NUMBER BEGIN :n := 1; END; / PL/SQL procedure successfully completed. PRINT n N ---------1

:: IDAT:: Programa Académico de Computación e Informática::

36


Profesor: Ezio Quispe Fernández

PROMPT Sintaxis PRO[MPT] [texto] donde texto representa el texto del mensaje que desea mostrar. Envía el mensaje especificado o una línea en blanco en la pantalla del usuario. Si omite texto, PROMPT mostrará una línea en blanco en la pantalla del usuario. Ejemplos El siguiente ejemplo muestra el uso de PROMPT junto con ACCEPT en un archivo de comandos denominado ASKFORDEPT.SQL. ASKFORDEPT.SQL contiene los siguientes comandos SQL y de SQL*Plus: PROMPT PROMPT Please enter a valid department PROMPT For example: 10 SELECT DEPARTMENT_NAME FROM EMP_DETAILS_VIEW WHERE DEPARTMENT_ID = &NEWDEPT Si ejecuta el archivo con START o @: @ASKFORDEPT.SQL VAL1 @HTTP://nombre_máquina.dominio:puerto/ASKFORDEPT.SQL VAL1 Please enter a valid department For example: 10 Department ID?>

Puede introducir un número de departamento en el prompt Department ID?>. Por defecto, SQL*Plus muestra la línea que contiene &NEWDEPT antes y después de la sustitución y, a continuación, muestra el nombre del departamento que corresponde al número introducido en el prompt Department ID?>. Puede utilizar SET VERIFY OFF para evitar este comportamiento.

:: IDAT:: Programa Académico de Computación e Informática::

37


Profesor: Ezio Quispe Fernández

RECOVER Sintaxis RECOVER {general | managed | BEGIN BACKUP | END BACKUP} donde la cláusula general tiene la siguiente sintaxis: [AUTOMATIC] [FROM ubicación] { {recuperación_total_basedatos | recuperación_parcial_basedatos | LOGFILE nombrearchivo} [ {TEST | ALLOW entero CORRUPTION | cláusula_parallel } [TEST | ALLOW entero CORRUPTION | cláusula_ parallel ]...] | CONTINUE [DEFAULT] | CANCEL} donde la cláusula recuperación_total_basedatos tiene la siguiente sintaxis: [STANDBY] DATABASE [ {UNTIL {CANCEL | TIME fecha | CHANGE entero} | USING BACKUP CONTROLFILE} [UNTIL {CANCEL | TIME fecha | CHANGE entero} | USING BACKUP CONTROLFILE]...] donde la cláusula recuperación_parcial_basedatos tiene la siguiente sintaxis: {TABLESPACE tablespace [, tablespace]... | DATAFILE {nombrearchivo | filenumber} [, nombrearchivo | filenumber]... | STANDBY {TABLESPACE tablespace [, tablespace]... | DATAFILE {nombrearchivo | filenumber} [, nombrearchivo | filenumber]...} UNTIL [CONSISTENT WITH] CONTROLFILE } donde la cláusula parallel tiene la siguiente sintaxis: :: IDAT:: Programa Académico de Computación e Informática::

38


Profesor: Ezio Quispe Fernández

{ NOPARALLEL | PARALLEL [ entero ] } donde la cláusula managed tiene la siguiente sintaxis: MANAGED STANDBY DATABASE cláusula_recover | cláusula_cancel |

cláusula_finish

donde la cláusula_recover tiene la siguiente sintaxis: { { DISCONNECT [ FROM SESSION ] | { TIMEOUT entero | NOTIMEOUT } } | { NODELAY | DEFAULT DELAY | DELAY entero } | NEXT entero | { EXPIRE entero | NO EXPIRE } | cláusula_parallel | USING CURRENT LOGFILE | UNTIL CHANGE entero | THROUGH { [ THREAD entero ] SEQUENCE entero | ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} } [ DISCONNECT [ FROM SESSION ] | { TIMEOUT entero | NOTIMEOUT } | { NODELAY | DEFAULT DELAY | DELAY entero } | NEXT entero | { EXPIRE entero | NO EXPIRE } | cláusula_parallel | USING CURRENT LOGFILE | UNTIL CHANGE entero | THROUGH { [ THREAD entero ] SEQUENCE entero | ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} ] ... donde la cláusula_cancel tiene la siguiente sintaxis: CANCEL [IMMEDIATE] [WAIT | NOWAIT] donde la cláusula_finish tiene la siguiente sintaxis: [ DISCONNECT [ FROM SESSION ] ] [ cláusula_ parallel ] FINISH [ SKIP [ STANDBY LOGFILE ] ] [ WAIT | NOWAIT ] :: IDAT:: Programa Académico de Computación e Informática::

39


Profesor: Ezio Quispe Fernández

donde la cláusula_parallel tiene la siguiente sintaxis: { NOPARALLEL | PARALLEL [ entero ] } Realiza la recuperación del medio físico en uno o más tablespaces, uno o más archivos de datos o en toda la base de datos. Debe definirse AUTORECOVERY en ON para utilizar el comando RECOVER en iSQL*Plus. Debido a posibles timeouts de red, se recomienda utilizar la línea de comandos de SQL*Plus y no iSQL*Plus para las operaciones de DBA de larga ejecución como RECOVER. Ejemplos Para recuperar toda la base de datos, introduzca RECOVER DATABASE

Para recuperar la base de datos hasta una hora especificada, introduzca RECOVER DATABASE UNTIL TIME 01-JAN-2001:04:32:00

Para recuperar los dos tablespaces ts_one y ts_two de la base de datos, introduzca RECOVER TABLESPACE ts_one, ts_two

Para recuperar el archivo de datos data1.db de la base de datos, introduzca RECOVER DATAFILE 'data1.db'

:: IDAT:: Programa Académico de Computación e Informática::

40


Profesor: Ezio Quispe Fernández

REMARK Sintaxis REM[ARK] Inicia un comentario en un archivo de comandos. iSQL*Plus no interpreta el comentario como un comando. Ejemplos El siguiente archivo de comandos contiene algunos comentarios habituales: REM COMPUTE uses BREAK ON REPORT to break on end of table BREAK ON REPORT COMPUTE SUM OF "DEPARTMENT 10" "DEPARTMENT 20" "DEPARTMENT 30" "TOTAL BY JOB_ID" ON REPORT REM Each column displays the sums of salaries by job for REM one of the departments 10, 20, 30. SELECT JOB_ID, SUM(DECODE( DEPARTMENT_ID, 10, SALARY, 0)) "DEPARTMENT 10", SUM(DECODE( DEPARTMENT_ID, 20, SALARY, 0)) "DEPARTMENT 20", SUM(DECODE( DEPARTMENT_ID, 30, SALARY, 0)) "DEPARTMENT 30", SUM(SALARY) "TOTAL BY JOB_ID" FROM EMP_DETAILS_VIEW GROUP BY JOB_ID;

:: IDAT:: Programa Académico de Computación e Informática::

41


Profesor: Ezio Quispe Fernández

REPFOOTER Sintaxis REPF[OOTER] [PAGE] [especimpr [texto | variable] ...] | [ON | OFF] donde especimpr representa una o más de las siguientes cláusulas utilizadas para incluir y formatear el texto: COL n S[KIP] [n] TAB n LE[FT] CE[NTER] R[IGHT] BOLD FORMAT texto Incluye y formatea un pie de página de informe especificado en la parte inferior de cada informe o muestra la definición actual de REPFOOTER. Ejemplos Para definir "END EMPLOYEE LISTING REPORT" como un pie de página de informe en una página diferente y centrarlo, introduzca: REPFOOTER PAGE CENTER 'END EMPLOYEE LISTING REPORT' TTITLE RIGHT 'Page: ' FORMAT 999 SQL.PNO SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE SALARY > 12000; LAST_NAME SALARY ------------------------- ---------:: IDAT:: Programa Académico de Computación e Informática::

42


Profesor: Ezio Quispe Fernández

King Kochhar De Haan Russell Partners Hartstein sum

24000 17000 17000 14000 13500 13000 ---------98500 Page: 2 END EMPLOYEE LISTING REPORT

6 rows selected.

Para suprimir el pie de página del informe sin cambiar la definición, introduzca

REPFOOTER OFF

:: IDAT:: Programa Académico de Computación e Informática::

43


Profesor: Ezio Quispe Fernández

REPHEADER Sintaxis REPH[EADER] [PAGE] [especimpr [texto | variable] ...] | [ON | OFF] donde especimpr representa una o más de las siguientes cláusulas utilizadas para incluir y formatear el texto: COL n S[KIP] [n] TAB n LE[FT] CE[NTER] R[IGHT] BOLD FORMAT texto Incluye y formatea una cabecera de informe especificada en la parte superior de cada informe o muestra la definición actual de REPHEADER. Ejemplos Para definir "EMPLOYEE LISTING REPORT" como una cabecera de informe en una página diferente y centrarlo, introduzca:

REPHEADER PAGE CENTER 'EMPLOYEE LISTING REPORT' TTITLE RIGHT 'Page: ' FORMAT 999 SQL.PNO SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE SALARY > 12000; Page: 1 EMPLOYEE LISTING REPORT :: IDAT:: Programa Académico de Computación e Informática::

44


Profesor: Ezio Quispe Fernández

Page: 2 LAST_NAME SALARY ------------------------- ---------King 24000 Kochhar 17000 De Haan 17000 Russell 14000 Partners 13500 Hartstein 13000 ---------sum 98500 6 rows selected. Para suprimir la cabecera del informe sin cambiar la definición, introduzca:

REPHEADER OFF

:: IDAT:: Programa Académico de Computación e Informática::

45


Profesor: Ezio Quispe Fernández

RUN Sintaxis R[UN] Muestra y ejecuta el comando SQL o bloque PL/SQL almacenado actualmente en el buffer SQL. Ejemplos Si el buffer SQL contiene el siguiente archivo de comandos:

SELECT DEPARTMENT_ID FROM EMP_DETAILS_VIEW WHERE SALARY>12000 Para ejecutar el archivo de comandos, introduzca

RUN 1 SELECT DEPARTMENT_ID 2 FROM EMP_DETAILS_VIEW 3 WHERE SALARY>12000 DEPARTMENT_ID ------------90 90 90 80 80 20 6 rows selected.

:: IDAT:: Programa Académico de Computación e Informática::

46


Profesor: Ezio Quispe Fernández

SET Define una variable del sistema para modificar los valores de entorno de SQL*Plus para la sesión actual, por ejemplo para:    

la personalización del formato HTML la activación o desactivación de la impresión de cabeceras de columna la definición del número de líneas por página la definición del ancho de visualización para datos

También puede utilizar la pantalla Preferencias de iSQL*Plus para definir las variables del sistema. Sintaxis SET variable_sistema valor dondevariable_sistema y valor representan una de las cláusulas mostradas en la siguiente tabla.

:: IDAT:: Programa Académico de Computación e Informática::

47


Profesor: Ezio Quispe Fernández

Sintaxis del Comando SET SET APPI[NFO]{ON | OFF | texto}

Define el registro automático de los archivos de comandos a través del paquete DBMS_APPLICATION_INFO. Ejemplo Para visualizar los valores de APPINFO, ya que está desactivado por defecto, introduzca

SET APPINFO ON SHOW APPINFO APPINFO is ON and set to "SQL*Plus" Para cambiar el texto por defecto, introduzca

SET APPINFO 'This is SQL*Plus' Para asegurarse de que se ha realizado el registro, introduzca

VARIABLE MOD VARCHAR2(50) VARIABLE ACT VARCHAR2(40) EXECUTE DBMS_APPLICATION_INFO.READ_MODULE(:MOD, :ACT); PL/SQL procedure successfully completed. PRINT MOD MOD --------------------------------------------------Es SQL*Plus Para volver a los valores por defecto de APPINFO, introduzca

SET APPINFO OFF

:: IDAT:: Programa Académico de Computación e Informática::

48


Profesor: Ezio Quispe Fernández

SET ARRAY[SIZE] {15 | n}

Define el número de filas que recuperará SQL*Plus a la vez de la base de datos. SET AUTO[COMMIT]{ON | OFF | IMM[EDIATE] | n}

Controla si la base de datos Oracle valida los cambios pendientes en la base de datos después de los comandos SQL o PL/SQL. SET AUTOCOMMIT no altera el comportamiento de validación si se sale de SQL*Plus. Cualquier dato no validado se valida por defecto. SET AUTOP[RINT] {ON | OFF}

Define la impresión automática de las variables ligadas. SET AUTORECOVERY [ON | OFF]

ON define el comando RECOVER para que aplique automáticamente los nombres de archivo por defecto de los archivos redo log archivados necesarios durante la recuperación. Debe definirse AUTORECOVERY en ON para utilizar el comando RECOVER en iSQL*Plus. Ejemplo Para definir el modo de recuperación en AUTOMATIC, introduzca

SET AUTORECOVERY ON RECOVER DATABASE SET AUTOT[RACE] {ON | OFF | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]

Muestra un informe sobre la ejecución de sentencias DML de SQL correctas (SELECT, INSERT, UPDATE o DELETE).

:: IDAT:: Programa Académico de Computación e Informática::

49


Profesor: Ezio Quispe Fernández

SET BLO[CKTERMINATOR] {. | c | ON | OFF}

Define el carácter utilizado para terminar los bloques PL/SQL en c. SET CMDS[EP] {; | c | ON | OFF}

Define el carácter no alfanumérico utilizado para separar varios comandos SQL*Plus introducidos en una línea en c. Ejemplo Para especificar un título con TTITLE y formatear una columna con COLUMN, ambos en la misma línea, introduzca

SET CMDSEP + TTITLE LEFT 'SALARIES' + COLUMN SALARY FORMAT $99,999 SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE JOB_ID = 'SH_CLERK'; SALARIES LAST_NAME -----------------------Taylor Fleaur Sullivan Geoni Sarchand Bull Dellinger Cabrio Chung Dilly Gates Perkins Bell Everett McCain Jones

SALARY ---------$3,200 $3,100 $2,500 $2,800 $4,200 $4,100 $3,400 $3,000 $3,800 $3,600 $2,900 $2,500 $4,000 $3,900 $3,200 $2,800

:: IDAT:: Programa Académico de Computación e Informática::

50


Profesor: Ezio Quispe Fernández

SALARIES LAST_NAME SALARY ------------------------- -------Walsh $3,100 Feeney $3,000 OConnell $2,600 Grant $2,600 20 rows selected. SET COLSEP { | texto}

Define que el carácter separador de columnas se imprima entre las columnas de la salida. El carácter separador de columnas (SET COLSEP) sólo se utiliza en iSQL*Plus si la opción Salida Preformateada está activada (SET MARKUP HTML PREFORMAT). Ejemplo Para definir el separador de columnas en "|", introduzca

SET MARKUP HTML PREFORMAT ON SET COLSEP '|' SELECT LAST_NAME, JOB_ID, DEPARTMENT_ID FROM EMP_DETAILS_VIEW WHERE DEPARTMENT_ID = 20; LAST_NAME |JOB_ID |DEPARTMENT_ID -------------------------|-------------|---------------------Hartstein |MK_MAN | 20 Fay |MK_REP | 20

:: IDAT:: Programa Académico de Computación e Informática::

51


Profesor: Ezio Quispe Fernández

SET CON[CAT] {. | c | ON | OFF}

Define el carácter utilizado para terminar una referencia de variable de sustitución cuando, de lo contrario, SQL*Plus interpretaría el siguiente carácter como parte del nombre de la variable. SET COPYC[OMMIT] {0 | n}

Controla el número de filas después de las que el comando COPY valida los cambios realizados en la base de datos. SET COPYTYPECHECK {ON | OFF}

Define la supresión de la comparación de tipos de dato al insertar o agregar tablas con el comando COPY. SET DEF[INE] {& | c | ON | OFF}

Define el carácter utilizado como prefijo para las variables de sustitución en c. SET DESCRIBE [DEPTH {1 | n | ALL}] [LINENUM {ON | OFF}] [INDENT {ON | OFF}]

Define la profundidad del nivel hasta el que puede describir un objeto de forma recursiva. Ejemplo Para crear un tipo de objeto ADDRESS, introduzca

CREATE TYPE ADDRESS AS OBJECT ( STREET VARCHAR2(20), CITY VARCHAR2(20) ); / Tipo creado

:: IDAT:: Programa Académico de Computación e Informática::

52


Profesor: Ezio Quispe Fernández

Para crear la tabla EMPLOYEE que contiene un objeto anidado, EMPADDR, de tipo ADDRESS, introduzca

CREATE TABLE EMPLOYEE (LAST_NAME VARCHAR2(30), EMPADDR ADDRESS, JOB_ID VARCHAR2(20), SALARY NUMBER(7,2) ); / Tabla creada Para describir la tabla EMPLOYEE en dos niveles y sangrar la salida mientras se muestran también los números de línea, introduzca:

SET DESCRIBE DEPTH 2 LINENUM ON INDENT ON DESCRIBE employee

1 2 3 4 5 6

Name Null? Type ------------------------------- -------- -------------------------LAST_NAME VARCHAR2(30) EMPADDR ADDRESS 2 STREET VARCHAR2(20) 2 CITY VARCHAR2(20) JOB_ID VARCHAR2(20) SALARY NUMBER(7,2)

SET ECHO {ON | OFF}

Controla si se deben o no reflejar los comandos en un archivo de comandos que se ejecuta con @, @@o START. ON muestra los comandos en pantalla. OFF suprime la visualización. ECHO no afecta a la visualización de comandos que se introducen de forma interactiva ni los redirecciona a iSQL*Plus desde el sistema operativo. SET EMB[EDDED] {ON | OFF}

Controla el punto de la página en el que empieza cada informe. :: IDAT:: Programa Académico de Computación e Informática::

53


Profesor: Ezio Quispe Fernández

SET ESC[APE] {\ | c | ON | OFF}

Define el carácter utilizado como carácter de escape. Ejemplo Si define el carácter de escape como un signo de exclamación (!),

SET ESCAPE ! ACCEPT v1 PROMPT 'Enter !&1:' muestra este prompt:

Enter &1: Para volver a definir el carácter de escape en el valor por defecto \ (barra invertida), introduzca

SET ESCAPE ON SET FEED[BACK] {6 | n | ON | OFF}

Muestra el número de registros devueltos por un archivo de comandos cuando éste selecciona al menos n registros. SET FLAGGER {OFF | ENTRY | INTERMED[IATE] | FULL}

Comprueba que las sentencias SQL cumplen el estándar ANSI/ISO SQL92. SET HEA[DING] {ON | OFF}

Controla la impresión de las cabeceras de columna en los informes. Ejemplo Para suprimir la visualización de cabeceras de columna en un informe, introduzca

SET HEADING OFF :: IDAT:: Programa Académico de Computación e Informática::

54


Profesor: Ezio Quispe Fernández

Si a continuación ejecuta el comando SQL SELECT

SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEW WHERE JOB_ID = 'AC_MGR'; se produce el siguiente resultado:

Higgins 12000 Para volver a activar la visualización de cabeceras de columna, introduzca

SET HEADING ON SET HEADS[EP] { | | c | ON | OFF}

Define el carácter utilizado como ruptura de línea en las cabeceras de columna. El carácter separador de cabeceras (SET HEADSEP) sólo está soportado en iSQL*Plus si la preferencia Salida Preformateada está activada (SET MARKUP HTML PREFORMAT). SET INSTANCE [rutaacceso_instancia | LOCAL]

Cambia la instancia por defecto para la sesión a la ruta de acceso de instancia especificada. Ejemplo Para definir la instancia por defecto en "PROD1" introduzca

DISCONNECT SET INSTANCE PROD1 Para volver a definir la instancia en el valor por defecto local, introduzca

SET INSTANCE local

:: IDAT:: Programa Académico de Computación e Informática::

55


Profesor: Ezio Quispe Fernández

Debe desconectarse de cualquier instancia conectada para cambiarla. SET LIN[ESIZE] {150 | n}

Define el número total de caracteres que muestra iSQL*Plus en una línea antes de empezar una línea nueva. SET LOBOF[FSET] {1 | n}

Define la posición inicial desde la que se recuperan y se muestran los datos CLOB y NCLOB. Ejemplo Para definir la posición inicial desde la que se recuperan los datos de una columna CLOB a la 22ª posición, introduzca

SET LOBOFFSET 22 Los datos de CLOB se ajustarán en la pantalla; SQL*Plus no se truncará hasta el 23º carácter. SET LOGSOURCE [rutaacceso]

Especifica la ubicación desde la que se recuperan los archive logs durante la recuperación. Ejemplo Para definir la ubicación por defecto de los archivos log para la recuperación en el directorio "/usr/oracle10/dbs/arch", introduzca

SET LOGSOURCE "/usr/oracle10/dbs/arch" RECOVER DATABASE SET LONG {80 | n}

Define elancho máximo (en bytes) para mostrar los valores CLOB, LONG, NCLOB y XMLType para copiar valores LONG. :: IDAT:: Programa Académico de Computación e Informática::

56


Profesor: Ezio Quispe Fernández

Ejemplo Para definir el número máximo de bytes de recuperación para visualizar y copiar valores LONG, hasta 500, introduzca

SET LONG 500 Los datos LONG se ajustarán a la pantalla, SQL*Plus no se truncará hasta el 501º byte. El valor por defecto para LONG es 80 bytes. SET LONGC[HUNKSIZE] {80 | n}

Define el tamaño (en bytes) de los incrementos que SQL*Plus utiliza para recuperar valores CLOB, LONG, NCLOB o XMLType. Ejemplo Para definir el tamaño de los incrementos en los que SQL*Plus recupera valores LONG en 100 bytes, introduzca

SET LONGCHUNKSIZE 100 Los datos LONG se recuperarán en incrementos de 100 bytes hasta que se recupere todo el valor o se alcance el valor de SET LONG, el que sea menor. SET MARK[UP] HTML [ON | OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON | OFF}] [SPOOL {ON | OFF}] [PRE[FORMAT] {ON | OFF}]

Crea una salida de texto con marcadores HTML, que es la salida utilizada por iSQL*Plus. SET NULL texto

Define el texto que aparece cada vez que hay un valor nulo en el resultado de un comando SQL SELECT.

:: IDAT:: Programa Académico de Computación e Informática::

57


Profesor: Ezio Quispe Fernández

SET NUMF[ORMAT] formato

Define el formato por defecto para la visualización de los números. Introduzca un formato numérico para formato. Introduzca

SET NUMFORMAT "" para utilizar el ancho de campo por defecto y el modelo de formato especificado por SET NUMWIDTH. SET NUM[WIDTH] {10 | n}

Define el ancho por defecto para la visualización de números.. Los valores COLUMN FORMAT tienen prioridad sobre los valores SET NUMFORMAT, que tienen prioridad sobre los valores SET NUMWIDTH. SET PAGES[IZE] {14 | n}

Define el número de filas mostradas en cada página. Los mensajes de error y los informativos no cuentan en el tamaño de la página, por lo que puede que las páginas no tengan exactamente la misma longitud. El tamaño de página por defecto para iSQL*Plus es 24. SET PAU[SE] {ON | OFF | texto}

SET PAUSE ON muestra el valor de texto; a continuación, para la salida y aparece el botón Página Siguiente después del número de filas de PAGESIZE de la salida del informe. Haga clic en el botón Página Siguiente para ver más de la salida del informe. Este botón no aparece en la última página de la salida. SET RECSEP {WR[APPED] | EA[CH] | OFF}

RECSEP indica a SQL*Plus dónde debe realizar la separación de registros. La preferencia Mostrar Separador de Registros (SET RECSEP) sólo está soportada en iSQL*Plus si Salida Preformateada está activada (SET MARKUP HTML PREFORMAT).

:: IDAT:: Programa Académico de Computación e Informática::

58


Profesor: Ezio Quispe Fernández

SET RECSEPCHAR { | c}

Define el carácter que desea mostrar o imprimir para separar los registros. SET SERVEROUT[PUT] {ON | OFF} [SIZE {n | UNL[IMITED]}] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]}]

Controla si se debe mostrar la salida (es decir, DBMS_OUTPUT.PUT_LINE) de los procedimientos almacenados o los bloques PL/SQL en SQL*Plus. Ejemplo Para activar la visualización de texto DBMS_OUTPUT.PUT_LINE, introduzca

dentro

de

un bloque

PL/SQL

con

SET SERVEROUTPUT ON El siguiente ejemplo muestra lo que ocurre cuando se ejecuta un procedimiento anónimo con SET SERVEROUTPUT ON:

BEGIN DBMS_OUTPUT.PUT_LINE('Task is complete'); END; / Tarea terminada. Procedimiento PL/SQL terminado correctamente. SET SQLC[ASE] {MIX[ED] | LO[WER] | UP[PER]}

Convierte las mayúsculas/minúsculas de los comandos SQL y los bloques PL/SQL justo antes de la ejecución. SET SQLPLUSCOMPAT[IBILITY] {x.y[.z]}

Define el comportamiento de la versión especificada por x.y[.z].

:: IDAT:: Programa Académico de Computación e Informática::

59


Profesor: Ezio Quispe Fernández

Matriz de Compatibilidad de SQL*Plus La matriz de compatibilidad de SQL*Plus tabula el comportamiento que afecta a cada valor de compatibilidad de SQL*Plus. Los modos de compatibilidad de SQL*Plus se pueden definir de tres formas: 

 

Puede incluir un comando SET SQLPLUSCOMPATIBILITY en el perfil de la ubicación o del usuario. En el momento de la instalación, no hay ningún valor SET SQLPLUSCOMPATIBILITY en glogin.sql. Por lo tanto, la compatibilidad por defecto será 10.2. Puede utilizar el argumento de comando SQLPLUS -C[OMPATIBILITY] {x.y[.z]} al iniciar para definir el modo de compatibilidad de esa sesión. Puede utilizar el comando SET SQLPLUSCOMPATIBILITY {x.y[.z]} durante una sesión para definir el comportamiento de SQL*Plus que desea para esa sesión.

La siguiente tabla muestra la versión de SQL*Plus que ha introducido el cambio de comportamiento y, por lo tanto, el valor mínimo de SQLPLUSCOMPATIBILITY para obtener ese comportamiento. Por ejemplo, para obtener el comportamiento anterior del comando VARIABLE, debe utilizar una versión de SQL*Plus anterior a la 9.0.1 o utilizar un valor SQLPLUSCOMPATIBILITY inferior a 9.0.1. El valor mínimo que se puede definir para SQLPLUSCOMPATIBILITY es 7.3.4

Matriz de Compatibilidad

Valor Consecuencia

Si Está Disponible

>=10.1 SHOW ERRORS ordena los mensajes de error de PL/SQL mediante columnas 10.1 nuevas que sólo están disponibles en la base de datos Oracle 10 g. >=10.1 Se han agregado las opciones de SPOOL, CREATE, REPLACE y SAVE y puede que 10.1 esto afecte al análisis de nombres de archivos en algunas plataformas. >=10.1 SET SQLPROMPT

10.1

>=10.1 Los caracteres de espacio en blanco están permitidos en los nombres de archivos 10.1 de Windows entre comillas. Otros caracteres especiales de puntuación no están permitidos actualmente en Windows. >=10.1 Los archivos de conexión/glogin se llaman para cada nueva conexión.

10.1

<10.1

Utiliza el prompt obsoleto DOC> al reflejar comentarios de /*.

10.1

>=

La columna definida FOLD_AFTER puede aparecer al principio de la nueva línea. 9.2.

:: IDAT:: Programa Académico de Computación e Informática::

60


Profesor: Ezio Quispe Fernández Valor Consecuencia

Si Está Disponible

9.2

De lo contrario, se coloca de forma incorrecta al final de la línea anterior con un ancho más pequeño que el esperado.

>= 9.0

Los espacios en blanco antes de la barra ("/") en una sentencia SQL se ignoran y 9.0.1.4. dicha barra se utiliza para ejecutar la sentencia. De lo contrario, se tratan como parte de la sentencia, por ejemplo, como un signo de división.

>= 9.0

La longitud especificada para los tipos NCHAR y NVARCHAR2 debe aparecer en 9.0.1 caracteres. De lo contrario, puede que la longitud represente bytes o caracteres dependiendo del juego de caracteres.

SET SQLT[ERMINATOR] {; | c | ON | OFF}

Define el carácter utilizado para terminar el archivo de comandos o la entrada de datos para los bloques PL/SQL o sentencias SQL, para ejecutar el archivo de comandos y cargarlo en el buffer. SET TIMI[NG] {ON | OFF}

Controla la visualización de las estadísticas de temporización. SET UND[ERLINE] {- | c | ON | OFF}

Define el carácter utilizado para subrayar las cabeceras de las columnas en los informes. El carácter subrayado no puede ser un carácter alfanumérico ni un espacio en blanco. ON u OFF activa o desactiva el subrayado. ON vuelve a cambiar el valor de c al valor por defecto "-". SET UNDERLINE está soportado en iSQL*Plus si SET MARKUP HTML PREFORMAT ON está definido. SET VER[IFY] {ON | OFF}

Controla si se debe mostrar el texto de una sentencia SQL o un comando PL/SQL antes y después de sustituir las variables de sustitución por valores. ON muestra el texto, mientras que OFF lo anula.

:: IDAT:: Programa Académico de Computación e Informática::

61


Profesor: Ezio Quispe Fernández

SET WRA[P] {ON | OFF}

Controla si se debe truncar la visualización de una fila seleccionada si es demasiado larga para el ancho de línea actual. OFF trunca la fila seleccionada, mientras que ON permite ajustar la fila seleccionada a la siguiente línea. Utilice las cláusulas WRAPPED y TRUNCATED del comando COLUMN para sustituir el valor de WRAP para determinadas columnas. La preferencia Ajustar Líneas (SET WRAP) sólo está soportada en iSQL*Plus si la opción Salida Preformateada está activada (SET MARKUP HTML PREFORMAT). SET XQUERY BASEURI {texto}

Especifica el URI base utilizado para resolver los URI relativos de las funciones. Activa el prefijo del archivo al que ha accedido la XQuery que se va a cambiar. Asegúrese de introducir valores válidos, ya que no se realiza ninguna validación del sistema en el valor XQUERY BASEURI. Ejemplo

SET XQUERY BASEURI '/public/scott' xquery for $i in doc("foo.xml") return $i / Se evalúa como:

select column_Value from xmltable('declare base-uri "/public/scott"; for $i in doc("foo.xml") return $i ') ; SET XQUERY ORDERING {UNORDERED | ORDERED | DEFAULT}

Define el orden de salida desde una XQuery. Hay tres valores: UNORDERED especifica que los resultados se ordenan en el orden en el que se recuperan de la base de datos. ORDERED especifica que los resultados se ordenan como define la XQuery. DEFAULT especifica el valor por defecto de la base de datos, que es UNORDERED. :: IDAT:: Programa Académico de Computación e Informática::

62


Profesor: Ezio Quispe Fernández

Ejemplo

SET XQUERY ORDERING ORDERED xquery for $i in doc("foo.xml") return $i / Se evalúa como:

select column_value from xmltable('declare ordering ordered; for $i in doc("foo.xml") return $i '); SET XQUERY NODE {BYVALUE | BYREFERENCE | DEFAULT}

Define el modo de conservación de la identidad de nodos. El modo de conservación se aplica a todas las expresiones que crean nodos nuevos (como, por ejemplo, los constructores de elementos) o que devuelven un elemento o una secuencia que contiene nodos (como, por ejemplo, las expresiones de ruta de acceso). Hay tres valores: BYVALUE especifica que no es necesario conservar la identidad del nodo. Es decir, cualquier operación de nodo, como, por ejemplo, la creación, o que se devuelva como resultado de una expresión, se copia en profundidad y pierde el contexto del árbol original del que procede. Por lo tanto, las operaciones siguientes en ese nodo que prueben la identidad del mismo, los ejes principal y hermano o el orden del nodo no estarán definidas. BYREFERENCE especifica que se deben mantener las identidades de nodos de forma que las operaciones posteriores en ese nodo mantengan la definición y el contexto del nodo. DEFAULT especifica el valor por defecto de la base de datos, que es BYVALUE. Ejemplo

SET XQUERY NODE BYREFERENCE xquery for $i in doc("foo.xml") return $i / Se evalúa como:

:: IDAT:: Programa Académico de Computación e Informática::

63


Profesor: Ezio Quispe Fernández

select column_value from xmltable('declare node byreference; for $i in doc("foo.xml") return $i '); SET XQUERY CONTEXT {texto}

Especifica una expresión de elemento de contexto de XQuery. Las expresiones de elementos de contexto evalúan el elemento de contexto, que puede ser un nodo (como en la expresión fn:doc("bib.xml")//book[fn:count(./author)>1]) o un valor atómico (como en la expresión (1 a 100)[. mod 5 eq 0]). Asegúrese de introducir valores válidos, ya que no se realiza ninguna validación del sistema en el valor XQUERY CONTEXT. Ejemplo

SET XQUERY CONTEXT 'doc("foo.xml")' xquery for $i in /a return $i / Se evalúa como:

select column_value from xmltable('for XMLQuery("doc('foo.xml')"));

$i in

/a return

:: IDAT:: Programa Académico de Computación e Informática::

$i' passing

64


Profesor: Ezio Quispe Fernández

SHOW Sintaxis

opción SHO[W] donde opción representa uno de los siguientes términos o cláusulas:

variable_sistemaALL

BTI[TLE] ERR[ORS] [ { FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER | VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS } [esquema.]nombre] LNO PARAMETERS [nombre_parámetro] PNO RECYC[LEBIN] [nombre_original] REL[EASE] REPF[OOTER] REPH[EADER] SGA SQLCODE TTI[TLE] USER XQUERY Muestra el valor de una variable del sistema SQL*Plus o del entorno SQL*Plus actual. Para SHOW SGA se necesita una conexión con privilegios de DBA. Ejemplos Para visualizar información sobre la SGA, introduzca

SHOW SGA Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers

7629732 bytes 60324 bytes 6627328 bytes 409600 bytes 532480 bytes

:: IDAT:: Programa Académico de Computación e Informática::

65


Profesor: Ezio Quispe Fernández

El ejemplo siguiente ilustra cómo se crea un procedimiento almacenado y a continuación muestra los errores de compilación:

CONNECT SYSTEM/MANAGER CREATE PROCEDURE HR.PROC1 AS BEGIN :P1 := 1; END; / Warning: Procedure created with compilation errors. SHOW ERRORS PROCEDURE PROC1 NO ERRORS. SHOW ERRORS PROCEDURE HR.PROC1 Errors for PROCEDURE HR PROC1: LINE/COL ERROR -------------------------------------------------------3/3 PLS-00049: bad bind variable 'P1' Para mostrar objetos que se pueden revertir con los comandos FLASHBACK donde CJ1 y ABC eran objetos borrados, introduzca:

SHOW RECYCLEBIN ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME -------------- ------------------ ------------ -------------------CJ1 RB$$29458$TABLE$0 TABLE 2003-01-22:14:54:07 ABC RB$$29453$TABLE$0 TABLE 2003-01-20:18:50:29 Para restaurar CJ1, introduzca

FLASHBACK TABLE CJ1 TO BEFORE DROP;

:: IDAT:: Programa Académico de Computación e Informática::

66


Profesor: Ezio Quispe Fernández

SHUTDOWN Sintaxis SHUTDOWN [ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL]] Cierra una instancia de base de datos Oracle actualmente en ejecución, cerrando y desmontando opcionalmente una base de datos. Ejemplos Para cerrar la base de datos en modo normal, introduzca

SHUTDOWN Database closed. Database dismounted. Oracle instance shut down.

:: IDAT:: Programa Académico de Computación e Informática::

67


Profesor: Ezio Quispe Fernández

START Sintaxis STA[RT] {url[.ext] } [arg...] Llama y ejecuta el archivo de comandos especificado por la dirección URL desde un servidor Web. Ejemplos Un archivo denominado PROMOTE con la extensión SQL, utilizado para promocionar empleados, puede tener el siguiente comando:

SELECT FIRST_NAME, LAST_NAME, JOB_ID, SALARYFROM EMP_DETAILS_VIEWWHERE JOB_ID='&1' AND SALARY>&2; Para ejecutar este archivo de comandos, introduzca

START PROMOTE ST_MAN 7000 o si está ubicado en un servidor Web, introduzca un comando con el formato:

START 7000

HTTP://nombre_máquina.dominio:puerto/PROMOTE.SQL

ST_MAN

Donde el nombre de dominio del host debe sustituir al nombre_máquina.dominio y el número de puerto utilizado por el servidor Web donde está el archivo de comandos debe sustituir al puerto. Se ejecuta el siguiente comando:

SELECT LAST_NAME, LAST_NAME FROM EMP_DETAILS_VIEW WHERE JOB_ID='ST_MAN' AND SALARY>7000; y los resultados mostrados.

:: IDAT:: Programa Académico de Computación e Informática::

68


Profesor: Ezio Quispe Fernández

STARTUP Sintaxis STARTUP opciones | opciones_actualización donde opciones tiene la siguiente sintaxis: [FORCE] [RESTRICT] [PFILE=nombrearchivo] [QUIET] [ MOUNT [nombrebasedatos] | [ OPEN [opciones_apertura] [ nombrebasedatos] ] | NOMOUNT ] donde opciones_apertura tiene la siguiente sintaxis: READ {ONLY | WRITE [RECOVER]} | RECOVER y donde opciones_actualización tiene la siguiente sintaxis: [PFILE=nombrearchivo] {UPGRADE | DOWNGRADE} [QUIET] Inicia una instancia de la base de datos Oracle con varias opciones, incluido el montaje y la apertura de una base de datos. Ejemplos Para iniciar una instancia con el archivo de parámetros estándar, montar la base de datos por defecto y abrirla, introduzca

STARTUP o bien

STARTUP OPEN database Para iniciar una instancia con el archivo de parámetros estándar, montar la base de datos por defecto y abrirla, introduzca

STARTUP FORCE RESTRICT MOUNT Para iniciar una instancia con el archivo de parámetros TESTPARM sin montar la base de datos, introduzca

:: IDAT:: Programa Académico de Computación e Informática::

69


Profesor: Ezio Quispe Fernández

STARTUP PFILE=testparm NOMOUNT Para cerrar una base de datos concreta, reiniciarla y abrirla inmediatamente, permitir el acceso sólo a usuarios con el privilegio RESTRICTED SESSION y utilice el archivo de parámetros MYINIT.ORA. introduzca

STARTUP FORCE RESTRICT PFILE=myinit.ora OPEN database

:: IDAT:: Programa Académico de Computación e Informática::

70


Profesor: Ezio Quispe Fernández

TIMING Sintaxis TIMI[NG] [START texto | SHOW | STOP] Registra los datos de temporización de un período transcurrido, muestra el nombre y los datos de temporización del temporizador actual o muestra el número de temporizadores activos. Ejemplos Para crear un temporizador denominado SQL_TIMER, introduzca

TIMING START SQL_TIMER Para mostrar el título y el tiempo acumulado del temporizador actual, introduzca

TIMING SHOW Para mostrar el título y el tiempo acumulado del temporizador actual y eliminarlo, introduzca

TIMING STOP

:: IDAT:: Programa Académico de Computación e Informática::

71


Profesor: Ezio Quispe Fernández

TTITLE Sintaxis TTI[TLE] [especimpr [texto | variable] ...] [ON | OFF] donde especimpr representa una o más de las siguientes cláusulas utilizadas para incluir y formatear el texto: BOLD CE[NTER] COL n FORMAT texto LE[FT] R[IGHT] S[KIP] [n] TAB n Incluye y formatea un título especificado en la parte superior de cada página del informe. Introduzca TTITLE sin cláusulas para ver su definición actual. El antiguo formato de TTITLE sólo se utiliza si el comando TTITLE va seguido de una sola palabra o cadena entre comillas. Ejemplos Para definir "Monthly Analysis" como título superior y alinearlo a la izquierda, centrar la fecha, alinear el número de página a la derecha con un formato de tres dígitos y visualizar "Data in Thousands" en el centro de la línea siguiente, introduzca

TTITLE LEFT 'Monthly Analysis' CENTER '01 Jan 2003' RIGHT 'Page:' FORMAT 999 SQL.PNO SKIP CENTER 'Data in Thousands' Monthly Analysis

01 Jan 2003 Data in Thousands

Page: 1

Para suprimir la visualización del título superior sin cambiar la definición, introduzca

TTITLE OFF :: IDAT:: Programa Académico de Computación e Informática::

72


Profesor: Ezio Quispe Fernández

UNDEFINE Sintaxis UNDEF[INE] variable ... donde variable representa el nombre de la variable de sustitución que desea suprimir. Suprime una o más variables de sustitución definidas explícitamente (con el comando DEFINE) o implícitamente (con un argumento en el comando START). Ejemplos Para anular la definición de una variable de sustitución denominada POS, introduzca

UNDEFINE POS Para anular la definición de dos variables de sustitución denominadas MYVAR1 y MYVAR2, introduzca

UNDEFINE MYVAR1 MYVAR2

:: IDAT:: Programa Académico de Computación e Informática::

73


Profesor: Ezio Quispe Fernández

VARIABLE Sintaxis VAR[IABLE] [variable [tipo] ] donde tipo representa uno de los siguientes valores: NUMBER CHAR CHAR (n [CHAR | BYTE]) NCHAR NCHAR (n) VARCHAR2 (n [CHAR | BYTE]) NVARCHAR2 (n) CLOB NCLOB REFCURSOR BINARY_FLOAT BINARY_DOUBLE Declara una variable ligada a la que se puede hacer referencia en PL/SQL. Para liberar los recursos utilizados por las variables ligadas CLOB y NCLOB, puede que necesite liberar LOB temporales con:

EXECUTE DBMS_LOB.FREETEMPORARY(:cv) Ejemplos El siguiente ejemplo ilustra la creación de una variable ligada, cambiando su valor y mostrando su valor actual. Para crear una variable ligada, introduzca:

VARIABLE ret_val NUMBER Para cambiar esta variable ligada en SQL*Plus, debe utilizar un bloque PL/SQL:

BEGIN :ret_val:=4; END; / :: IDAT:: Programa Académico de Computación e Informática::

74


Profesor: Ezio Quispe Fernández

PL/SQL procedure successfully completed. Para mostrar el valor de la variable ligada en SQL*Plus, introduzca:

PRINT ret_val RET_VAL ---------4 El siguiente ejemplo ilustra la creación de una variable ligada y su definición en el valor devuelto por una función:

VARIABLE id NUMBER BEGIN :id := EMP_MANAGEMENT.HIRE ('BLAKE','MANAGER','KING',2990,'SALES'); END; / El valor devuelto por el procedimiento almacenado se incluye en la variable ligada, :id. Se puede visualizar con el comando PRINT o se puede utilizar en subprogramas PL/SQL posteriores. El siguiente ejemplo ilustra la visualización automática de una variable ligada:

SET AUTOPRINT ON VARIABLE a REFCURSOR BEGIN OPEN :a FOR SELECT LAST_NAME, CITY, DEPARTMENT_ID FROM EMP_DETAILS_VIEW WHERE SALARY > 12000 ORDER BY DEPARTMENT_ID; END; /

:: IDAT:: Programa Académico de Computación e Informática::

75


Profesor: Ezio Quispe Fernández

PL/SQL procedure successfully completed. LAST_NAME CITY DEPARTMENT_ID ------------------------- ------------------------------ ------------Hartstein Toronto 20 Russell Oxford 80 Partners Oxford 80 King Seattle 90 Kochhar Seattle 90 De Haan Seattle 90 6 rows selected. En el ejemplo anterior, no es necesario emitir un comando PRINT para visualizar la variable.

:: IDAT:: Programa Académico de Computación e Informática::

76


Profesor: Ezio Quispe Fernández

WHENEVER OSERROR Sintaxis WHENEVER OSERROR {EXIT [SUCCESS | FAILURE | n | variable | :VariableLigada] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]} Realiza la acción especificada (para el archivo de comandos actual por defecto) y vuelve a centrarse en el espacio de trabajo si se produce algún error del sistema operativo. Ejemplos Los comandos del siguiente archivo de comandos hacen que iSQL*Plus pare el procesamiento del archivo de comandos actual y devuelva el enfoque al área de entrada de la pantalla de trabajo:

WHENEVER OSERROR EXIT START no_such_file

:: IDAT:: Programa Académico de Computación e Informática::

77


Profesor: Ezio Quispe Fernández

WHENEVER SQLERROR Sintaxis WHENEVER SQLERROR {EXIT [SUCCESS | FAILURE | WARNING | n | variable | :VariableLigada] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]} Realiza la acción especificada (para el archivo de comandos por defecto) y vuelve a centrarse en el espacio de trabajo si el comando SQL o el bloque PL/SQL genera algún error. Ejemplos Los comandos del siguiente archivo de comandos hacen que iSQL*Plus pare el procesamiento del archivo de comandos actual y devuelva el enfoque al área de entrada de la pantalla de trabajo si falla el comando SQL UPDATE:

WHENEVER SQLERROR EXIT SQL.SQLCODE UPDATE EMP_DETAILS_VIEW SET SALARY = SALARY*1.1; Los ejemplos siguientes muestran que el comando WHENEVER SQLERROR no tiene ningún efecto sobre los comandos de SQL*Plus, pero sí en los comandos SQL y bloques PL/SQL:

WHENEVER SQLERROR EXIT SQL.SQLCODE column LAST_name headIing "Employee Name" Unknown COLUMN option "headiing" SHOW non_existed_option

:: IDAT:: Programa Académico de Computación e Informática::

78


Profesor: Ezio Quispe Fernández

XQUERY Sintaxis XQUERY sentencia_xquery El comando XQUERY de SQL*Plus permite realizar una consulta XQuery 1.0 en una base de datos especificada. XQUERY está soportado en la base de datos Oracle 10 g (Versión 2) y posteriores. Si intenta utilizar XQUERY en una versión anterior de la base de datos Oracle, se producirá el siguiente error: SP2-614 Versión del servidor demasiado antigua Ejemplos La sentencia de XQuery en el siguiente archivo de comandos consulta la vista EMP_DETAILS_VIEW del esquema HR:

set long 160 set linesize 160 xquery for $i in ora:view("EMP_DETAILS_VIEW") return $i / Result Sequence -----------------------------------------------------------------------------------------<ROW><EMPNO>7369</EMPNO><ENAME>SMITH</ENAME><JOB>CLERK</JOB ><MGR>7902</MGR><HIREDATE>17DEC-80</HIREDATE><SAL>800</SAL><DEPTNO>20</DEPTNO></ROW> 14 item(s) selected.

:: IDAT:: Programa Académico de Computación e Informática::

79

base de datos  

trabajo de base datos II

Read more
Read more
Similar to
Popular now
Just for you