Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tablas
Su nombre va de 1 a 30 caracteres.
Su propietario(Owner), es quien la crea
Para que otro usuario tenga acceso se debe entregar
privilegios.
GRANT {object_priv|ALL} 1 [{nombre columnas}0]
ON objeto TO {usuario|rol}1|PUBLIC
WITH GRANT OPTION;
REVOKE {privilegio |ALL} [{nombre columnas}0]
ON objeto FROM {usuario|role } 1 |PUBLIC
[CASCADE CONSTRAINTS]
WITH GRANT OPTION;
Tablas
Cuando otro usuario la use debe referenciarla como:
owner.nombre_tabla
Mximo de columnas 254.
Columnas
Tipo de dato y su tamao
CHAR
NUMBER
INTEGER
DATE
LONG
RAW
LONGRAW
Mximo de 255.
Por defecto 1.
Mximo de 105 dgitos.
Por defecto 44.
Numrico sin decimal.
Por defecto 38.
Hasta el 31 de diciembre de 4712.
Tipo caracter con tamao variable hasta 65535 bytes.
Permite una sola columna LONG por tabla.
No se puede usar en subconsultas, funciones o
ndices.
dato en binario puro (imgenes y sonido) con un ancho
mximo de 255.
Igual que LONG, pero para almacenar datos en binario
puro.
Columnas
Su nombre va de 1 a 30 caracteres.
valor obligatorio: NOT NULL.
Rango de valores: Check
chequear que el columna> valor o se encuentre entre
dos valores.
Clave Primaria: valor nico y no nulo (NOT NULL).
Tablas
Ejemplo:
CREATE TABLE clientes
(codigo
INTEGER
nombre
CHAR(30)
Direccion
CHAR(100),
anotacion
LONG,
PRIMARY KEY (codigo));
NOT NULL,
NOT NULL,
Sintaxis
SEQUENCE
create sequence NOMBRESECUENCIA
start with VALORENTERO
increment by VALOR ENTERO + o maxvalue VALOR ENTERO
minvalue VALOR ENTERO, si se omite el valor es 1
cycle | nocycle; al llegar al maxvalue se reinicia,
defecto es nocycle.
Creando
Sequence
create sequence nro_oc;
La secuencia nro_oc,
se inicia en 1
se incrementa en 1 y
su valor mximo es
999999999999999999999999
nocycle;
Creando
Sequence
create sequence sec_nro_libro start with 1 increment
by 1
maxvalue 99999
minvalue 1;
Usando
SEQUENCE
Dado que la secuencia (sequence) es una tabla, para obtener los
datos se usa la sentencia select y se usan las pseudo columnas :
nexval : representa el valor siguiente
currval: representa el valor actual
Forma de obtencin de los valores:
Nro_oc.nexval o
Nro_oc.currval o
select nexval from Nro_oc o
select currval from Nro_oc
Usando
SEQUENCE
Los valores nexval y currval pueden ser usados en las sentencias
insert y update
Ejemplo:
insert OC values (Nro_oc.currval, fecha,..)
inserta el valor actual de la secuencia
insert OC values (Nro_oc.nexval, fecha,..)
inserta el siguiente valor de la secuencia
Borrar
SEQUENCE y Otros
DROP SEQUENCE NOMBRE;
borra la tabla sequence
select * from all_sequences;
muetra todas las secuencias existentes
select * from all_objects
muetra todos los objetos de la BD
Nombre de la tabla
Descripcin
ACCESSIBLE_COLUMNS
ACCESSIBLE_TABLES
AUDIT_ACTIONS
ALL_INDEXES
ALL_SEQUENCES
ALL_TABLES
.....
USER_TABLES
USER_TAB_COLUMNS
USER_TAB_GRANTS
SucursalAcreedor
RutAcreedor (FK)(PK)
Sucursal (PK)
TipoSucursal (0:Matriz, 1:Sucursal)
NombreSucursal
Direccion
CodigoCiudad (FK)
Ciudad
CodigoCiudad (PK)
NombreCiudad
CodigoPais (FK)
CodigoProvincia
Provincia
CodigoProvincia (PK)
NombreProvincia
CodigoRegion (FK)
Region
CodigoRegion (PK)
NombreRegion
NombreCortoRegion
Pais
CodigoPais (PK)
NombrePais
Nacionalidad
IndTlc (0:Sin
Tratado, 1:Con
Tratado)
Acreedor
RutAcreedor (PK)
NombreFantasia
RazonSocial Not null
CodigoGiroEmpresa (FK)
Nacionalidad (0:Nac, 1:Ext)
FechaIngresoRegistro
FechaCaducidadRegistro
IndicadorDefinitivo (0:Provisional,1:Definitivo)
CodigoActividad (FK)
Giros
CodigoGiro (PK)
DecripcionGiro
Actividad
Codigo (PK)
DescripcionActividad
Lenguaje PL/SQL
v_date VARCHAR2(10);
v_day NUMBER;
v_month NUMBER;
v_year NUMBER;
BEGIN
v_date := '18/10/1975';
pkg_javasp.splitDate( v_date v_day, v_month, v_year);
dbms_output.put_line('-------------------------------------------');
dbms_output.put_line('SPLIT DATE: ');
dbms_output.put_line('-------------------------------------------');
dbms_output.put_line('DIA: ' || v_day);
dbms_output.put_line('MES: ' || v_month);
dbms_output.put_line('ANIO: ' || v_year);
dbms_output.put_line('-------------------------------------------');
END;
Lenguaje PL/SQL
Estructura de cdigo PL/SQL
DECLARE
-- Las declaraciones son opcionales
BEGIN
-- El cuerpo del programa es necesario
EXCEPTION
-- Los manejadores de excepciones son opcionales
END;
Lenguaje PL/SQL
Control de flujo:
WHILE condicin LOOP
SENTENCIAS;
END LOOP;
FOR variable IN valorinicial .. valorfinal LOOP
SENTENCIAS;
END LOOP;
Lenguaje PL/SQL
Tipo de datos ms comunes:
Float, integer, int,
numeric,real,
character, char, varchar2,string,
date, boolean,
number.
Lenguaje PL/SQL
Uso de sentencias DML en PL/SQL
Clausula SELECT ... INTO para asignar el valor
devuelto por SELECT a una variable.
El resultado de la expresin SELECT ... INTO
debe ser una sola fila. Si el resultado es ms de
una fila se carga la excepcin
TOO_MANY_ROWS.
Estructura de registro con el atributo %ROWTYPE
Permite definir una estructura del tipo de datos
de las columnas de la tabla.
Lenguaje PL/SQL
EXCEPCIONES (EXCEPTION)
Una excepcin es una condicin de error
especfica y un programa PL/SQL produce una
excepcin especfica cuando detecta un error,
pasando al control de manejo de excepciones del
programa principal.
Oracle identifica cerca de 20 excepciones inclusive
NO_DATA_FOUND y TOO_MANY_ROWS
Se puede manejar excepciones definidas por el
usuario.
Lenguaje PL/SQL
Cursores
Es un rea de trabajo para una sentencia SQL.
Permite definir un apuntador al resultado de una expresin
SELECT de varias filas.
Se declara un objeto del tipo cursor con una expresin
SELECT.
Se abre el cursor con OPEN cursor.
Se extrae las filas del cursor con FETCH.
El objeto del tipo cursor maneja atributos como
%FOUND, %NOTFOUND, %ISOPEN y %ROWCOUNT
para el control y manejo del cursor.
Cierra el cursor con CLOSE cursor.
FIN