Acabo de entrar en contacto con Oracle. ¿Puede decirme en detalle cómo definir una variable A para almacenar la clave principal de estos datos?
4. Tipo de registro
Registro significa "registro".
A veces, usar tipo tipo definirá demasiadas variables y usar tipo fila obtendrá datos que no le interesan.
¿Cómo obtener solo los valores de los campos que te interesan? En este momento, utilice el tipo de registro para personalizar cuántas columnas hay.
Sintaxis:
tipo nombre del tipo es registro(
nombre del atributo 1 tipo de atributo,
nombre del atributo 2 tipo de atributo
);
Nota
1. Las comas (,) se utilizan para definir atributos, no puntos y comas (;).
2. No es necesario utilizar "," en el último nombre del atributo.
Hay dos pasos a utilizar:
1. Primero use el tipo para personalizar un nuevo tipo. Las variables que puede usar este tipo de variable están relacionadas con la definición.
2. Utilice este nuevo tipo para definir una variable para que esta variable pueda almacenar datos reales.
Ejemplo: Los requisitos son los mismos que los anteriores.
declare
--Personalizar un tipo
tipo myType es record(
xm emp.enametype, --name
p>
gzuo emp.jobtype, --job
gzi emp.saltype --salary
);
--use tipos personalizados para definir variables
myValue myType;
begin
seleccione ename, job, sal en myValue desde emp donde empno=7844;
dbms_output .put_line('ename='||myValue.xm);
dbms_output.put_line('job='||myValue.gzuo);
dbms_output.put_line( 'sal= '||myValue.gzi);
end;
Nota:
· El orden de los atributos del tipo personalizado debe corresponder uno a -uno al realizar la consulta.
·Los nombres de los atributos en myValue también se personalizan, no los nombres de los campos.
Problema: el código anterior es más complicado que usar el tipo directamente y no veo la ventaja. ¿Por qué seguir usando el registro?
Respuesta:
En los proyectos, los tipos personalizados generalmente se colocan en paquetes (paquete, sobre el cual aprenderemos más adelante), para que se pueda hacer referencia a ellos directamente en otros lugares.
Ejemplo:
Primero personalice el tipo en el paquete:
cree o reemplace el paquete my_bao
como
tipo myType es record(
xm emp.enametype, --name
gzuo emp.jobtype, --job
gzi emp.saltype --salary
);
end;
Entonces puedes usar el tipo directamente en el bloque, pero necesitas agregar el nombre del paquete antes del tipo: "my_bao". ".
declarar
--Utilice tipos personalizados en el paquete para definir variables
myValue my_bao.myType;
begin
seleccione ename, trabajo, sal en myValue desde emp donde empno=7844
dbms_output.put_line('ename='||myValue.xm
dbms_output.put_line); ('job='||myValue.gzuo);
dbms_output.put_line('sal='||myValue.gzi);
end;