2 Tipos de Sentencias
Las sentencias SQL pertenecen a dos categoras principales: Lenguaje de Definicin de Datos,
DDL y Lenguaje de Manipulacin de Datos, DML. Estos dos lenguajes no son lenguajes en s
mismos, sino que es una forma de clasificar las sentencias de lenguaje SQL en funcin de su
cometido. La diferencia principal reside en que el DDL crea objetos en la base de datos y sus
efectos se pueden ver en el diccionario de la base de datos; mientras que el DML es el que
permite consultar, insertar, modificar y eliminar la informacin almacenada en los objetos de la
base de datos.
Cuando se ejecutan las sentencias DDL de SQL, el SGBD confirma la transaccin actual antes
y despus de cada una de las sentencias DDL. En cambio, las sentencias DML no llevan
implcito el commit y se pueden deshacer. Existe pues un problema al mezclar sentencias DML
con DDL, ya que estas ltimas pueden confirmar las primeras de manera involuntaria e
implicita, lo que en ocasiones puede ser un problema.
A continuacin se presenta una tabla con las sentencias SQL ms comunes, clasificadas segn
el lenguaje al que pertenecen.
Sentencia
Objetivo
Alter Table
Analyze
Drop Index
Eliminar un ndice.
Grant
Truncate
Revoke
Sentencia
DML
Objetivo
Insert
Delete
Update
Select
Commit
Rollback
3 SQL*Plus
La herramienta que nos proporciona ORACLE para interactuar con la base de datos se llama
SQL*Plus. Bsicamente, es un intrprete SQL con algunas opciones de edicin y formateo de
resultados.
Antes de ver la manera de conectarse a SQL*Plus, conviene tener claros algunos conceptos:
Usuario/Clave
Para poder acceder a una base de datos gestionada por ORACLE debemos ser un
usuario autorizado de la misma y conocer la palabra clave, password, asociada al
usuario.
Variable de ambiente ORACLE_SID
Indica la base de datos con la que vamos a trabajar.
3.1 Conexin
Para entar en SQL*Plus se debe ejecutar el comando
$ sqlplus usuario/passwd
$ sqlplus usuario/passwd@servicio
Otra circunstancia que hay que tener en cuenta a la hora de conectarnos a SQL*Plus es el
modo establecido por el DBA para la autentificacin del usuario de la base de datos. La primera
posibilidad es que recaiga sobre el SGBD Oracle la autentificacin de los usuarios, por lo que
tendremos que darle nuestro nombre de usuario y la palabra de paso. Pero existe la posibilidad
de que el SGBD Oracle deje en manos del Sistema Operativo esta responsabilidad. As, no
ser necesario demostrarle al SGBD Oracle quin somos ya que el SO se ha encargado
previamente de comprobar que todo es correcto. En este segundo caso, el comando de
conexin con SQL*Plus debe omitir el nombre de usuario y la palabra clave, pero manteniendo
el resto de esta manera:
$ sqlplus /@servicio
Una vez que hemos conseguido entrar en SQL*Plus nos presenta el prompt y espera la
inserccin de sentencias SQL. Todas las sentencias deben acabar con un ';'. Una sentencia
puede continuar en varias lneas, que SQL*Plus va numerando. Si queremos anular la
sentencia actual podemos hacerlo colocando un '.' como nico carcter en una lnea. Si
queremos volver a ejecutar la ltima sentencia se puede hacer con el comando '/'. Si queremos
ejecutar las sentencias que almacena un fichero .sql podemos hacerlo anteponiendo el smbolo
'@' al nombre del fichero.
Para cerrar la sesin vale con teclear 'exit'.
SQL*Plus tambin nos permite editar la sentencia SQL alamacenada en el buffer mediante un
sencillo (y limitado) editor en lnea, cuyos comandos se enumeran a continuacin:
Comando
Abreviatura
Descripcin
APPEND texto
A texto
CHANGE/fuente/destino C/fuente/destino
CHANGE/texto
C/texto
CLEAR BUFFER
CL BUFF
Borra el buffer
DEL
DEL
INPUT
I texto
LIST
LIST n
Lnn
LIST *
L*
LIST LAST
L LAST
LIST m n
Lmn
Al contenido del buffer tambin se puede acceder desde el editor del Sistema Operativo. As, el
buffer podr ser manipulado con las posibilidades del editor con el que estemos acostumbrados
a trabajar. Al salir del editor se devuelve el control al SQL*Plus. Para conseguir trabajar con el
editor del Sistema Operativo basta con colocar la variable DEFINE_EDITOR y luego llamar al
editor.
SQL> define_editor=vi
SQL> edit
4 Creacin
nombre de la tabla,
nombre de cada columna,
tipo y tamao de los datos almacenados en cada columna,
informacin adicional, restricciones, etc.
Hay que tener en cuenta tambin ciertas restricciones en la formacin de los nombres de las
tablas: longitud mxima de 30 caracteres, no puede haber nombres de tabla duplicados, deben
comenzar con un carcter alfabtico, permitir caracteres alfanumricos y el guin bajo '_', y
Oracle no distingue entre maysculas y minsculas.
La sintaxis del comando que permite crear un tabla es la siguiente:
Descripcin
VARCHAR2(tamao)
CHAR(tamao)
LONG
NUMBER(dig,dec)
DATE
RAW(tamao)
4.2 Restricciones
Las restricciones de los datos se imponen para asegurarnos que los datos cumplen con una
serie de condiciones predefinidas para cada tabla. Estas restricciones ayudan a conseguir la
integridad de referencia: todas las referencias dentro de una BD son vlidas y todas las
restricciones se han cumplido.
Las restricciones se van a definir acompaadas por un nombre, lo que permitir activarlas o
desactivarlas segn sea el caso; o tambin mezcladas en la definiciones de las columnas de la
tabla. A continuacin vamos a describir cada una de las restricciones mencionadas.
NOT NULL
Establece la obligatoriedad de que esta columna tenga un valor no nulo. Se debe
especificar junto a la columna a la que afecta. Los valores nulos no ocupan espacio, y
son distintos a 0 y al espacio en blanco. Hay que tener cuidado con los valores nulos
en las operaciones, ya que 1 * NULL es igual a NULL.
UNIQUE
Evita valores repetidos en una columna, admitiendo valores nulos. Oracle crea un
ndice automticamente cuando se habilita esta restriccin y lo borra al deshabilitarse.
DEFAULT
Establece un valor por defecto para esa columna, si no se le asigna ninguno.
CHECK
Comprueba que se cumpla una condicin determinada al rellenar esa columna. Esta
condicin slo debe estar construida con columnas de esta misma tabla.
PRIMARY KEY
Establece el conjunto de columnas que forman la clave primaria de esa tabla. Se
comporta como nica y obligatoria sin necesidad de explicitarlo. Slo puede existir una
clave primaria por tabla. Puede ser referenciada como clave ajena por otras tablas.
Crea un ndice automticamente cuando se habilita o se crea esta restriccin. En
+
Oracle, los ndices son construidos sobre rboles B .
FOREIGN KEY
Establece que el contenido de esta columna ser uno de los valores contenidos en una
columna de otra tabla maestra. Esta columna marcada como clave ajena puede ser
NULL. No hay lmite en el nmero de claves ajenas. La clave ajena puede ser otra
columna de la misma tabla. Se puede forzar que cuando una fila de la tabla maestra
sea borrada, todas las filas de la tabla detalle cuya clave ajena coincida con la clave
borrada se borren tambin. Esto se consigue aadiendo la coletilla ON DELETE
CASCADE en la definicin de la clave ajena.
Seguidamente se presenta un ejemplo en el que se crean dos tablas, una de departamentos y
otra de empleados:
REM
REM tabla departamento con un cdigo de departamento, un nombre y una
REM localizacin.
REM
create table dep (
cod_dep number(3),
nombre varchar2(15) not null,
loc varchar2(10),
constraint dep_pk primary key (cod_dep),
constraint dep_loc check
Y un ejemplo de su utilizacin se puede ver al describir la definicin de las dos tablas creadas
antes. Como no es una sentencia SQL no necesita el ';' al final. Tambin se puede abreviar
como DESC.
SQL> describe dep
Name
Null? Type
------------------------------- -------- ---COD_DEP
NOT NULL NUMBER(3)
NOMBRE
NOT NULL VARCHAR2(15)
LOC
VARCHAR2(10)
SQL> desc emp
Name
Null? Type
------------------------------- -------- ---COD_EMP
NOT NULL NUMBER(4)
NOMBRE
NOT NULL VARCHAR2(10)
OFICIO
VARCHAR2(10)
JEFE
NUMBER(4)
FECHA_ALTA
DATE
SALARIO
NUMBER(10)
COMISION
NUMBER(10)
COD_DEP
NUMBER(3)
5 Modificacin
Despus de crear una tabla, a veces nos encontramos con que se necesita aadir una columna
adicional o modificar la definicin de una columna existente. Esta operacin se puede realizar
con el comando ALTER TABLE.
+
Tambin se puede querer modificar una tabla aadiendo o eliminando restricciones. En este
caso el comando a utilizar ser
ALTER TABLE tabla {ADD | DROP} CONSTRAINT restriccin;
Una vez que tenemos definida la estructura de una tabla se pueden insertan los datos,
modificarlos o borrarlos de la tabla.
Esta tarea entra dentro de las operaciones que se realizan con el lenguaje DML. Este lenguaje
permite manipular los objetos de la base de datos, insertando, modificando y/o borrando el
contenido de las tablas. Hay que recordar que estas sentencias no son 'autoconfirmadas' y
requieren de la sentencia COMMIT para que sus efectos perduren en el tiempo, o de la
sentencia ROLLBACK para deshacer los cambios efectuados.
A continuacin vamos a estudiar tres de las sentencias DML ms comunes.
6.1 Insercin
El comando que permite insertar filas en las tablas es el siguiente.
*
Slo especificaremos las columnas donde insertar y su orden cuando no insertemos datos en
todas ellas o no lo hagamos en el mismo orden en que definimos la tabla. La asociacin
columna-valor es posicional. Los valores deben cumplir con los tipos de datos definidos. Los
valores de tipo caracter y fecha deben ir encerrados entre comillas simples, ('').
A continuacin se puede ver la insercin de filas en las tablas de ejemplo.
Borrar todas las filas que cumplan la condicin especificada en la clusula WHERE. Si esta
clusula no se fija, se borrarn todas las filas de la tabla. Aqu cabe decir que aunque
con DELETE borremos todas las filas de una tabla, no borramos la definicin de la tabla del
diccionario y podemos insertar datos posteriormente en la tabla. Esta es una diferencia con la
sentencia DROP TABLE, que produce la eliminacin tanto del contenido de la tabla como de la
definicin de la misma.
7 Seleccin
SELECT {* | {columna,} }
+
FROM {tabla,}
[WHERE condicin]
+
[ORDER BY {expresinColumna [ASC | DESC],} ];
Como una primera utilizacin de la sentencia SELECT podemos utilizarla para ver todas las
tablas que tenemos en la base de datos.
SQL> select table_name from user_tables;
TABLE_NAME
-----------------------------DEP
EMP
Tambin se puede asociar un alias a las tablas para abreviar los nombres de las tablas. Un
ejemplo se puede ver en la sentencia SQL siguiente:
SQL> select d.nombre from dep d;
Ejemplo
Igualdad
!=, <>, ^=
Desigualdad
<
Menor que
>
Mayor que
<=
>=
in
not in
between
Contenido en el rango
not
between
like
'_abc%'
Operadores de Aritmticos
Operador Operacin Ejemplo
+
Suma
Resta
Producto
Divisin
Operacin
Ejemplo
||
Concatenacin
7.6 Funciones
Existen en SQL muchas funciones que pueden complementar el manejo de los datos en las
consultas. Se utilizan dentro de las expresiones y actuan con los valores de las columnas,
variables o constantes.
Se pueden incluir en las clsulas SELECT, WHERE y ORDER BY.
Pueden anidarse funciones dentro de funciones. Y existe una gran variedad de funciones para
cada tipo de datos:
aritmticas,
de cadenas de caracteres,
de manejo de fechas,
de conversin,
otras,
de grupo.
Funciones Aritmticas
Funcin
Cometido
Ejemplo
ABS(n)
CEIL(n)
select ceil(15.7)
from dual;
16
FLOOR(n)
select floor(15.7)
from dual;
15
MOD(m,n)
select mod(11,4)
from dual;
select power(3,2)
Resultado
select
round(123.456,1)
from dual;
123.5
SQRT(n)
TRUNC(m,n)
select
trunc(123.456,1)
from dual;
123.4
SIGN(n)
Cometido
Ejemplo
Resultado
CHR(n)
ASCII(cad)
65
CONCAT(cad1,cad2)
LOWER(cad)
minusculas
UPPER(cad)
MAYUSCULAS
INITCAP(cad)
Isabel
LPAD(cad1,n,cad2)
select lpad('P',5,'*')
from dual;
****P
RPAD(cad1,n,cad2)
select rpad('P',5,'*')
from dual;
P****
select
replace('digo','i','ie')
from dual;
diego
Devuelve la sudcadena
de cad compuesta
por n caracteres a partir de
la posicion m.
select
substr('ABCDEFG',3,2) CD
from dual;
LENGTH(cad)
select length('cadena')
6
from dual;
Cometido
Ejemplo
Resultado
SYSDATE
Devuelve la fecha y
hora actuales.
14-MAR-97
ADD_MONTHS(d,n)
Devuelve la
select
fecha d incrementada add_months(sysdate,4) from
en n meses.
dual;
LAST_DAY(d)
Devuelve la
MONTHS_BETWEEN(d1, diferencia en meses
d2)
entre las
fechas d1 y d2.
NEXT_DAY(d,cad)
14-JUL-97
select
months_between(sysdate,'01- 2.43409424
JAN-97') from dual;
16-MAR-97
Cometido
Ejemplo
Convierte la
cadena cad a un nmero, select
TO_NUMBER(cad,fmto) opcionalmente de
to_number('12345')
acuerdo con el
from dual;
formato fmto.
Resultado
124345
TO_CHAR(d, fmto)
Convierte la fecha d a
una cadena de
caracteres,
opcionalmente de
acuerdo con el
formato fmto.
select
to_char(sysdate)
from dual;
'14-MAR97'
TO_DATE(cad,fmto)
Convierte la
cadena cad de tipo
varchar2 a fecha,
opcionalmente de
acuerdo con el
formato fmto.
01-JAN-97
Con las fechas pueden utilizarse varios formatos. Estos formatos permiten modificar la
presentacin de una fecha. En la siguiente tabla se presentan algunos formatos de fecha y el
resultado que generan.
Mscaras de Formato Numricas
Formato
Cometido
Ejemplo
Resultado
cc scc
select to_char(sysdate,'cc')
from dual;
20
y,yyy
signo.
from dual;
select to_char(sysdate,'yyyy')
from dual;
1997
Trimestre.
select to_char(sysdate,'q')
from dual;
ww w
select to_char(sysdate,'ww')
from dual;
11
mm
select to_char(sysdate,'mm')
from dual;
03
ddd dd d
073
select to_char(sysdate,'hh')
from dual;
12
mi
select to_char(sysdate,'mi')
from dual;
15
ss sssss
select to_char(sysdate,'sssss')
44159
from dual;
Cometido
Ejemplo
Resultado
syear
year
Ao en Ingls
month o
mon
select
to_char(sysdate,'month') from march
dual;
day dy
Nombre del da de la
semana o su abreviatura
de tres letras.
select to_char(sysdate,'day')
from dual;
a.m.
p.m.
select to_char(sysdate,'a.m.')
p.m.
from dual;
b.c. a.d.
friday
a.d.
Otras Funciones
Funcin
Cometido
Ejemplo
Resultado
DECODE(var, val1,
cod1, val2, cod2, ...,
defecto)
P, D, X, ...
GREATEST(exp1,
exp2, ...)
Devuelve el mayor
sin ejemplo.
valor de una lista.
sin ejemplo.
LEAST(cad,fmto)
Devuelve el menor
sin ejemplo.
valor de una lista.
sin ejemplo.
NVL(val, exp)
Devuelve la
expresin exp
si val es NULL,
y val si en otro
select
450000,
salario+nvl(comision,0) from
350000, ...
emp;
SELECT {* | {columna,} }
+
FROM {tabla,}
WHERE condicin
+
GROUP BY {columna ,}
HAVING condicin
+
ORDER BY {expresinColumna [ASC | DESC],} ;
En la clusula GROUP BY se colocan las columnas por las que vamos a agrupar. Y en la
clusula HAVING se especifica la condicin que han de cumplir los grupos para pasar al
resultado.
La evaluacin de las diferentes clusulas en tiempo de ejecucin se efecta en el siguiente
orden:
Se presenta un error debido a que cuando se utiliza GROUP BY, las columnas implicadas en
el SELECT y que no aparezcan en la clusula GROUP BY deben tener una funcin de
agrupamiento. En otras palabras, la columnanombre debe tener una funcin de agrupamiento
que actue sobre ella (max, min, sum, count, avg). Si no puede ser as, deber llevar dicha
columna a la clusula GROUP BY.
De nuevo, el ejemplo quedar as:
SQL> select count(nombre), oficio from emp group by oficio;
COUNT(NOMBRE) OFICIO
------------- ----------2 Analista
2 Comercial
Cometido
Ejemplo
COUNT(col)
select count(nombre),oficio
from emp group by oficio;
AVG(col)
MAX(col)
MIN(col)
SUM(col)
STDDEV(col)
Como ejemplo podemos consultar sobre todos los nombres de empleado que trabajan para los
departamentos 100 o 300. Esto se consigue restando a todos los nombres de empleados,
aquellos que estn en el departamento 200.
SQL> select nombre from emp
2 minus
3 select nombre from emp where cod_dep=200;
NOMBRE
---------Cano
Lopez
Martin
Recio
Roncal
Rueda
Santana
Sanz
Yuste
9 rows selected.
7.9 Combinaciones
Hasta ahora hemos construido consultas con una nica tabla, pero esto no debe ser siempre
as.
De hecho, slo se alcanza la verdadera potencia del SQL cuando combinamos el contenido de
ms de una tabla.
Supongamos que queremos conseguir una lista con los empleados y los departamentos para
los que trabajan. Esta informacin est repartida en las dos tablas que tenemos, emp y dep.
As, podramos intentar una consulta que seleccionara el campo nombre de la tabla emp y
el nombre del departamento. Y aqu surge el primer problema, cmo distinguimos entre dos
columnas que llamndose igual, pertenecen a tablas distintas? Para eso se utiliza como prefijo
Existe un tipo especial de combinacin llamada Combinacin Externa. Suponga que se crea
un nuevo departamento, (insert into dep values (400,'Distribucion','Valladolid');) pero todava no
hemos asignado personal al mismo. Si realizamos la consulta anterior, el nuevo departamento
no aparecer en la respuesta. Pero esto se puede evitar si sealamos en la
clusula WHERE la posibilidad de que en la tabla de empleados no exista alguno de los
cdigos de departamento que si exista en la tabla de departamentos. Esto se hace colocando
un (+) de la siguiente manera:
SQL> select e.nombre, d.nombre
2 from emp e, dep d
3 where e.cod_dep(+)=d.cod_dep;
NOMBRE NOMBRE
---------- --------------Cano
Administracion
Roncal Administracion
Rueda
Administracion
Martin Administracion
Sanz
Administracion
Lopez
Administracion
Perez
I+D
Sastre I+D
Garcia I+D
Mateo
I+D
Yuste
Produccion
Recio
Produccion
Garcia Produccion
Santana Produccion
Distribucion
15 rows selected.
7.10 Subconsultas
A veces se han de utilizar en una consulta los resultados de otra consulta, llamada
subconsulta.
No es necesario especificar tipos ni tamaos de las columnas, ya que vienen determinados por
los tipos y tamaos de las columnas recuperadas en la subconsulta.
8 Eliminacin
9 Vistas
Una vista es como una ventana a travs de la cual se puede consultar o cambiar informacin
de la tabla a la que est asociada.
Las vistas tienen la misma estructura que una tabla: filas y columnas. La nica diferencia es
que slo se almacena de ellas la definicin, no los datos. Los datos que se recuperan mediante
una consulta a una vista se presentarn igual que los de una tabla. De hecho, si no se sabe
que se est trabajando con una vista, nada hace suponer que es as. Al igual que sucede con
una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. Aunque
siempre es posible seleccionar datos de una vista, en algunas condiciones existen restricciones
para realizar el resto de las operaciones sobre vistas.
Por qu utilizar vistas?
La vista se crea con las columnas que devuelve una consulta. Si no nos importa que las
columnas de la vista hereden los nombres de las columnas recuperadas en la consulta no
tenemos que especificarlos.
Borrado de una Vista
DROP VIEW vista ;
DIR
A continuacin dos comandos que permiten jugar con los nombres de los objetos en
SQL: SINONYM y RENAME.
10.1 Sinnimos
SQL permite crear un sinnimo para una tabla o vista. Esto supone que pueden utilizarse dos
nombres diferentes para un mismo objeto.
Creacin de un Sinnimo
CREATE SYNONYM sinonimo FOR [usuario.]{tabla | vista} ;
Borrado de un Sinnimo
DROP SYNONYM sinonimo ;
Una primera utilidad de los sinnimos es la posibilidad de independizar las aplicaciones de los
nombres fsicos de las tablas que manejan. Asi, las aplicaciones harn referencia a un
sinnimo de tabla, que en cada caso puede estar asociado a una tabla distinta.
Otra utilidad es la posibilidad de que un usuario acceda a las tablas de otro usuario como si
fueran suyas, siempre que tenga permiso para hacerlo, si al definir el sinnimo incluye el
nombre del usuario en la denominacin de la tabla. As si el usuarioA tiene permiso para leer el
contenido de la tabla emp del usuarioB, entonces desde la ejecucin de la sentencia CREATE
SYNONYM plantilla FOR usuarioB.emp ver la tabla usuarioB.empcomo plantilla.
11 Lo Ms SQL*Plus
En este apartado vamos a profundizar un poco en las otras posibilidades que nos brinda
SQL*Plus en los:
ficheros de comandos, y
generacin de informes,
lneas de comentarios,
lneas de ejecucin,
lneas de comandos SQL, y
lneas de comandos SQL*Plus.
Lneas de Comentarios
Se pueden introducir comentarios en una archivo de comandos de tres maneras:
Lneas de Ejecucin
Constan de una nica barra inclinada, "/", y se introducen a continuacin de cada sentencia
SQL indicando su ejecucin.
Sustituyen al punto y coma, ";" al final de las sentencias SQL.
Lneas de Comandos SQL
Se puede introducir cualquiera de los comandos SQL enumerados en este curso, y se
ejecutarn de manera secuencial.
Se permite el anidamiento de los ficheros de comandos.
Lneas de Comandos SQL*Plus
Variables de Sustitucin
Las variables de sustitucin son un nombre de variable de usuario con el smbolo & delante.
Cuando SQL*Plus detecta una variable de sustitucin en un comando, ejecuta el comando
tomando el valor de la variable.
Esto se puede ver en el ejemplo, donde preguntamos por los empleados que son analistas:
SQL> define oficio=Analista
SQL> define tabla=emp
SQL> select nombre, oficio from &tabla where oficio='&oficio';
old 1: select nombre, oficio from &tabla where oficio='&oficio'
new 1: select nombre, oficio from emp where oficio='Analista'
NOMBRE OFICIO
---------- ----------Sastre Analista
Recio
Analista
Si se desea que SQL*Plus pregunte por el valor de la variable al usuario slo la primera vez
que se encuentra con ella, se colocar "&&" delante de la variable de usuario.
Tambin se pueden utilizar hasta nueve parmetros en la lnea de comandos cuando se llama
a la ejecucin de un archivo de comandos.
En el archivo de comandos nos referiremos a los parmetros con las variables &1, &2, ...
,&9 que se corresponden posicionalmente con ellos.
Desde el archivo de comandos se puede hacer referencia a los parmetros cualquier nmero
de veces y en cualquier orden.
Comandos de Comunicacin con el Usuario
Los siguientes comandos proporcionan un medio de comunicacin con el usuario:
Otros Comandos
Los siguientes comandos tambin se pueden incluir en un archivo de comandos:
SET LINESIZE: pone el nmero mximo de caracteres por lnea. Por defecto vale 80 y
el mximo es 999.
SET PAGESIZE: pone el nmero de filas de la salida antes de empezar una nueva
pgina. Por defecto es 25. Incluye el ttulo y las lneas de pausa.
SET HEADING [ON | OFF]: Activa/desactiva la utilizacin de encabezados de
columnas. Por defecto est activado.
SET NULL texto: Indica la cadena de caracteres que hay que colocar en sustitucin de
los valores NULL. Por defecto es "".
SET ECHO [ON | OFF]: Activa/desactiva la visualizacin de los comandos que
SQL*Plus ejecuta segn van siendo tratados. Por defecto est desactivada.
SET FEEDBACK [ n | ON | OFF]: Muestra el nmero de registros recuperados en cada
consulta cuando se recuperan n o ms registros. ON se pueden considerar como n=1,
y OFF como n=0.
SET VERIFY [ON | OFF]: Controla la salida de confirmacin para los valores de las
variables de sustitucin. Por defecto est activado.
Comandos