Introducción A Sistemas ORACLE
Introducción A Sistemas ORACLE
Introducción A Sistemas ORACLE
Sesiones SQL*Plus
Para hacer la conexión a SQL*Plus, es necesario conectarse via telnet a
altair.usb.ve. Una vez indicado el login (de la forma ci3391xx) y el
correspondiente password, se debe entrar al manejador PL/SQL,
tecleando:
$ sqlplus loginname
A continuación se pedirá el password para el acceso al manejador (no
necesariamente igual al password para altair). Una vez tecleado el
password, aparecerá el prompt de PL/SQL:
SQL>
Otra forma de entrar a PL/SQL es tecleando desde la linea de
comandos de UNIX:
$ sqlplus loginname/password
Salir de SQL*Plus
Para salir de SQL*Plus basta con teclear en la linea de comandos de
ORACLE:
SQL> quit;
[previous][next]
nombre: Cadena de caracteres de hasta 20 caracteres, no puede contener nulos, y todas las letras
deben ser mayusculas;
jefe: Número de cédula de identidad del jefe, es clave foránea de la misma relación en el atributo
ci;
sueldo: Número en punto flotante, de hasta diez dígitos, incluyendo dos decimales, que indica el
sueldo mensual del empleado;
dpto: Número del departamento para el cual trabaja el empleado, es clave foránea del atributo nro,
de la relación depto.
Tipos de datos
Tipo Descripción
Cadena de caracteres de longitud n. Una vez que se declara, se reserva espacio para n
CHAR(n)
caracteres, aun cuando no se usen todos.
Cadena de caracteres de longitud n. Se define un máximo de n caracteres, pero solo se usa
VARCHAR2(n)
el espacio correspondiente a los caracteres ocupados
VARCHAR(n) Exactamente lo mismo que VARCHAR2(n)
Número en punto flotante, de p dígitos, de los cuales s son decimales. El parámetro s
NUMBER(p,s) puede ser omitido, con lo cual se considerará que su valor es 0. El valor por defecto para p
es 38.
DATE Fecha comprendida entre Enero 1, 4712 aC y Diciembre 31, 4712 dC.
[previous][next]
[previous][next]
[previous][next]
Oracle Bulk Loader
Indice
1. Creación del archivo de control
3. Representación de fechas
2. INFILE * indica que los datos aparecerán en el mismo archivo, y no en uno separado, en cuyo
caso el nombre del archivo reemplazaría a *.
3. La inserción se efectuará en la relación llamada test. La tabla que recibirá los datos debe existir
en la base de datos. Mas aún, la tabla debe estar vacía. De no cumplirse esto último, debe usarse
"APPEND INTO TABLE test" en lugar de "INTO TABLE test".
5. BEGIN DATA indica que en las líneas siguientes aparecerán las tuplas a ser insertadas.
7. Los nombres de las columnas a ser insertadas aparecen entre paréntesis, y separados por coma.
Observación: Un error común es asumir que los espacios en blanco son ignorados en el archivo de carga,
tal como sucede en casi todos los lenguajes de programación. Este error podría producir resultados
inesperados al momento de efectuar consultas sobre los datos insertados.
Notese que en las segunda tupla insertada aparece un espacio en
blanco entre la coma y el nombre bar. Esto producirá como resultado
que se almacene la tupla (2, ' bar') en lugar de la tupla (2, 'bar'), por
locual, al hacer una consulta donde nombre= 'bar', nunca se obtendría
dicha tupla.
B. Datos cargados desde un archivo separado
Se pueden colocar los datos a ser cargados en un archivo distinto al
archivo de control. He aquí un ejemplo sencillo:
LOAD DATA
INFILE 'test.txt'
APPEND INTO TABLE test
FIELDS TERMINATED BY ','
(num,name)
A continuación, el significado de cada una de las líneas:
1. LOAD DATA: se requiere esta línea al principio del archivo de control.
3. Los datos en test.txt será añadidos al final de la relación test. De no aparecer la palabra
APPEND, la relación test debe estar vacía.
5. Los nombres de las columnas aparecen entre paréntesis, y separados por coma.
El contenido del archivo de datos test.txt es:
1,foo
2, bar
3,baz
4,glorp
5,snarf
Representación de fechas
El tipo de datos DATE es representado en un formato que brinda considerable flexibilidad. Primero, debe
declararse la tabla con un atributo de tipo DATE. He aquí un ejemplo sencillo:
CREATE TABLE Foo (
i NUMBER,
d DATE
);
Ahora, en el archivo de control, al describir los atributos de la tabla a
ser cargada, puede acompañarse cada nombre de atributo con su tipo.
Aún cuando esto puede hacerse para todos los atributos, en el
siguiente ejemplo se hará solo para el atributo de fecha ( d).
En el ejemplo tenemos, seguido del indicador de tipo DATE, una
máscara de fecha que describe el formato que va a tener la fecha en
los datos de entrada. La máscara de fecha es una cadena de
caracteres, encerrada con comillas dobles, que debe seguir las
siguientes convenciones:
Las secuencias de letras que comiencen con d, m o y, denotan campos en los datos que deben ser
interpretados como dias, meses y años, respectivamente. Como casi todo en SQL, se permiten
letras mayúsculas.
Todos los demás caracteres son tratados literalmente, y deben aparecer en los datos, si fueron
colocados en la máscara.
Los campos usados representan longitud maxima para los valores correspondientes.
[previous] [next]
BEGIN
EXCEPTION
END;
Solo se requiere que aparezca la sección ejecutable. Lo demas es
opcional. Las unicas instrucciones SQL permitidas en un bloque PL/SQL
son INSERT, UPDATE, DELETE y SELECT, ademas de algunas instrucciones
para manipulación de datos, e instrucciones para control de
transacciones. Otras instrucciones de SQL como DROP, CREATE o ALTER
no son permitidas. Se permite el uso de comentarios estilo C (/* . . .*/).
PL/SQL no es case sensitive por lo que no hay distinción entre nombres
con mayusculas y minusculas.
En la sección de declaraciones, se indican las variables que serán
usadas dentro del bloque y sus tipos. Por ejemplo:
DECLARE
myBeer VARCHAR(20);
price NUMBER(6,2);
En algunos casos, es posible que se desee que el tipo de una variable
coincida con el tipo usado para una columna de una tabla
determinada, en esos casos se puede usar la construcción:
DECLARE
myBeer Beers.name%TYPE;
Con lo cual se logra que la variable myBeer tenga el mismo tipo que la
columna name de la tabla Beers.
Tambien es posible inicializar las variables, mediante el operador :=.
Ademas, mediante el uso del mismo operador es posible hacer
asignaciones en el cuerpo del programa. Por ejemplo:
DECLARE
price NUMBER := 300;
BEGIN
price := price + 150;
END;
.
run
La ejecución de este bloque no tendrá ningun efecto, ya que no se
están haciendo cambios sobre la base de datos.
Ademas es posible usar sentencias condicionales y ciclos dentro de los
bloques de PL/SQL. Una sentencia condicional tipica es de la forma:
IF (condicion)
THEN (lista de acciones)
ELSE (lista de acciones)
END IF;
Si se desea, se puede hacer el uso de varios casos de condición,
mediante el uso de:
IF . . . THEN . . .
ELSIF . . . THEN . . .
ELSIF . . . THEN . . .
.
.
.
ELSE . . .
END IF;
En ambos casos, la clausula ELSE es opcional.
Si se desea crear un lazo, se puede usar la instrucción:
LOOP
lista_de_instrucciones
END LOOP;
Al menos alguna de las instrucciones debe ser:
EXIT WHEN condicion;
De esta manera, el lazo terminará cuando la condición sea verdadera.
Además es posible utilizar la instrucción:
WHILE (condicion) LOOP
lista_de_instrucciones
END LOOP;
De esta forma, el ciclo solo se inicia si la condicion es verdadera en
principio. Es posible que el programa nunca entre en el ciclo. Usando la
instrucción LOOP se garantizaba que siempre se ejecutaría el cuerpo del
ciclo al menos una vez. Por último, es posible usar ciclos que se
ejecuten un numero predeterminado de veces, mediante el uso de la
instrucción:
FOR i IN a..b LOOP
lista_de_instrucciones
END LOOP;
En este caso i es una variable de uso local, por lo que no es necesario
que sea declarada, y puede ser usada dentro del lazo, mientras que a y
b son constantes.
[previous] [next]
[previous] [next]
[previous] [next]
[previous]