Record data type

In Pl Sql esistono molti tipi di dati: varchar2, number, float, double, boolean, ecc, ma può capita di voler utilizzare una struttura che contiene diversi tipi di dati, la chiamiamo tipo Record. È semplicemente un nuovo tipo di dati. Il tipo di record è formato da un gruppo di una o più colonne con proprie nome e tipo di dati.

Per creare il tipo di record è necessario utilizzare la parola chiave TYPE in modo da istruire il compilatore su questo nuovo tipo di dati.

Ci sono due modi per crearlo, il primo è a “livello di database” che può essere memorizzato e utilizzato tutti sul database come qualsiasi altro tipo di dati (esempio 1), il secondo è a “livello di programma” che viene utilizzato solo nel programma (esempio 2).

Se il tipo di record viene creato a “livello di database”, può essere dichiarato per la colonna della tabella, quindi un singolo file colonna può contenere dati complessi.

Per memorizzare i dati in questa struttura è possibile accettare il valore per ogni singola colonna di questo record (esempio 2) o usalo come un singolo record di molte colonne (esempio 3).

Di seguito alcuni esempi per creare il tipo di record:

ESEMPIO 1:
create type emp_rec is record
(
id number,
name varchar2(100),
position varchar2(200),
salary number
);
/
SPIEGAZIONE :

Questo codice crea un tipo di record a livello di database. Emp_rec è il nome dell’oggetto che ha 4 colonne id, nome, posizione e stipendio L’oggetto emp_rec è visibile in tutto il database in modo simile ad altri tipi di dati (varchar2, numero e così via on) dopo aver dichiarato una variabile di questo tipo.

ESEMPIO 2:
declare
type emp_rec is record
(
id number,
name varchar2(100),
position varchar2(200),
salary number
);
my_emp emp_rec;
begin
my_emp.id=45;
my_emp.name=’Steve Austin’;
my_emp.position=’Astronaut’;
my_emp.salary=’200000′;
end;
SPEGAZIONE :

Questo codice crea un tipo di record a livello di programma. Emp_rec è il nome dell’oggetto che ha 4 colonne id, nome, posizione e stipendio. L’oggetto emp_rec è visibile solo in questo programma. È possibile accedere ai dati di questo tipo di dati utilizzando la variabile dichiarata come emp_rec_type (my_emp nel nostro esempio) punto (.) seguito dal nome della colonna.

i.e. . i.e. my_emp.salary
ESEMPIO 3:
declare
type emp_rec is record
(
id number,
name varchar2(100),
position varchar2(200),
salary number
);
my_emp emp_rec;
begin
insert into emp (id_emp, name_emp, pos_emp, sal_emp) values (42,’Steve Austin’, ‘Pilot’, 20000);
select id_emp, name_emp, pos_emp, sal_emp
into my_emp
from emp
where id_emp = 42;
dbms_output(‘Value for id => ‘||my_emp.id);
dbms_output(‘Value for name => ‘||my_emp.name);
dbms_output(‘Value for position => ‘||my_emp.position);
dbms_output(‘Value for salary => ‘||my_emp.salary);
end;
SPIEGAZIONE :

Questo codice crea un tipo di record a livello di programma. Emp_rec è il nome dell’oggetto che ha 4 colonne id, nome, posizione e stipendio. Il programma utilizza la tabella emp che ha le stesse colonne dei nostri tipi di dati (emp_rec). Il programma popola la tabella emp e quindi popola my_emp come dati a livello di riga utilizzando un file seleziona query. Infine stampa i valori presenti nella variabile my_emp.

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *