Form

Páginas: 5 (1031 palabras) Publicado: 25 de marzo de 2012
PL/SQL 2 TIPOS DE DATOS ESTRUCTURADOS O COMPUESTOS
En PL/SQL podemos distinguir como tipos de Datos

Estructurados o Compuestos:
o o Los Registros Las Colecciones: Los Varrays Las Tablas: (indexadas, anidadas,multinivel)

Los Registros permiten tratar una serie de variables de tipos que pueden ser diferentes como una única unidad. Como los registros en otros lenguajes (C, Java,...) LasColecciones combinan variables del mismo tipo, para ser tratadas también como una unidad. Como hacen los arrays o las matrices en otros lenguajes. RECORD

“Son agrupaciones de datos relacionados similares a las estructuras (struct) del lenguaje C o los registros de Modula2.”
Un registro proporciona un mecanismo para tratar con variables diferentes una relacionadas entre sí, como si fueran una únicaunidad. Declaración Sintaxis: TYPE tipo_registro IS RECORD ( campo1 tipo1 [NOT NULL [:= expr1], NOT NULL] ... campon tipon [NOT NULL [:= exprn]); NOT NULL]

tipo_registro es el nombre del nuevo tipo campoi son los nombres de los campos incluidos en el registro tipoi son los tipos correspondientes a los campos
Ejemplo: DECLARE TYPE t_registro_simple IS RECORD ( Codigo NUMBER(4), NombreVARCHAR2(10):=’Pepe’, Fecha_alta DATE, Comentario VARCHAR2(45) NOT NULL:= NULL:=’Desconocido’); --Declaración de variables asociadas a los tipos definidos v_simple1 t_registro_simple; v_simple2 t_registro_simple; Para hacer referencia a uno de los campos del registro, se emplea la notación “de punto”:

nombre_registro.nombre_campo

25

PL/SQL 2 Con la declaración de tipos del ejemplo anteriorEjemplo: Ejemplo: BEGIN /* SYSDATE función predefinida que devuelve la fecha y hora del sistema asignamos a las variables definidas en el ejemplo los valores siguientes*/ v_simple1.Fecha_alta:=SYSDATE SYSDATE; SYSDATE v_simple2.Comentario:=’Le falta la poliza’; END; END Asignación de Registros Para poder asignar un registro a otro, ambos tienen que ser del mismo tipo. v_simple1:= v_simple2 ;Asignación válida Las asignaciones de registros utilizan la semántica de copia: “los valores de un registro son asignados a los campos correspondientes del otro registro” Si dos registros son de tipos distintos no se pueden asignar, aunque tengan definidos los mismos tipos de campos. En este caso, se pueden asignar “campo a campo”. En caso de asignación no válida obtendremos el error: PLS-00382: PLS-00382:el tipo de la expresión no es correcto Ejemplo: Ejemplo: DECLARE TYPE t_regtipo1 IS RECORD ( Campo1 NUMBER, Campo2 VARCHAR2(5)); TYPE t_ t_regtipo2 IS RECORD ( Campo1 NUMBER, Campo2 VARCHAR2(5)); v_reg1 t_regtipo1; v_reg2 t_regtipo2; BEGIN /* Aunque v_ reg1 y v_reg2 tienen los mismos nombres y tipos de campo, los tipos de registros en sí mismos son diferentes. Esta es una asignación ilegal quegenera el error PLS-382 */ PLS-382. v_reg1 := v_reg2; /* Sin embargo, los campos son del mismo tipo, por tanto, las siguientes asignaciones son legales. */ v_reg1.campo1 := v_reg2.campo1; v_reg1.campo2 := v_reg2.campo2; END; END / También se puede asignar un valor a un registro mediante una instrucción SELECT , que extraiga los datos y los almacene en un registro compatible. SELECT columna1, …,columnan INTO v_registro … Siendo columna1,…, columnan compatibles con los campos correspondientes del registro

26

PL/SQL 2

Utilización de %ROWTYPE Es habitual definir un registro con los mismos tipos que una fila de una tabla. Para facilitar esa labor PL/SQL incorpora el operador %ROWTYPE De forma similar %ROWTYPE. %TYPE, %ROWTYPE devuelve un tipo basándose en la definición de la tabla quese le indique. Sintaxis: DECLARE v_registroStudents Students%ROWTYPE; Define un registro cuyos campos son idénticos a las columnas de Students. v_registroStudents tendría la estructura: ( id NUMBER(5), first_name VARCHAR2(20), last_name VARCHAR2(20), major VARCHAR2(30), current_credits NUMBER(3)); No se heredan las posibles restricciones de NOT NULL que puedan estar definidas en la tabla....
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Que Son Formas De Estado Y Formas De Estado
  • formar y formarse
  • Formas
  • La Forma
  • Formas
  • forma
  • Forma
  • formas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS