Está en la página 1de 2

1.

-introduccion

los tipos compuestos,son tipos definidos por el usuario,y por lo tanto hay
que,primero defines el tipo y luego declarar variables de ese tipo ,

2.-registros

los registros plsql son muy similares a las estructuras de c,

3.-sintaxis
type id_tipo_reg is record (

campo1 tip1 [not null][:=exp1],//keyword como pr defecto


campo2 tipo2[not null][:=exp2],
);

id_var id_tipo_reg;

ejemplo:
type r_empresa is record(

nif char(10) not null:='00000000-x',


nombre varchar2(20),
fecha_ini date,
descripcion varchar2(40));

v_emp1 r_empresa;
v_emp2 r_empresa;

para poder introducir valores al registro o se puede introducir uno a uno (ej:
v_emp1.nombre:='pepe') o igualando estructuras de mismo tipo(ej: v_emp1=v_emp2
//solo del mismo tipo) y haciendo un select para igualarlo.

con %rowtype se devuelve la estructura de una tabla.

ej: v_usuarios usuarios%rowtype;

no se pueden asignar listas de valores a un registro, y no se pueden utilizar en


operacciones de inserccion.

ej: de todo

declare
k_usu constant usuarios.num_socio%type:='a1111';
v_usu usuarios%rowtype;
begin
select *
into v_usu
from usuarios
where num_socio=k_usu;
dbms_output.put_line(v_usu.dni||' '||v_usu.nombre||' '||v_usu.apellidos||'
'||v_usu.localidad);
end;
/
crear un registro que almacene el nombre de una tabla la fecha actual y el numero
de filas actuales que tiene esa tabla, guardar en el registro los datos actuales y
mostrarlos por pantalla.

declare
type r_tabla is record(
nombre char(6):='bancos',
fecha date,
filas number
);
v_tabla r_tabla;

begin
select count(*)
into v_tabla.filas
from bancos;
v_tabla.fecha:=sysdate;
dbms_output.put_line(v_tabla.nombre||' '||v_tabla.fecha||' '||
v_tabla.filas);
end;
/

También podría gustarte