Oracle
 sql >> Base de données >  >> RDS >> Oracle

Que signifie %Type dans Oracle sql ?

Oracle (et PostgreSQL) ont :

  • %TYPE
  • %ROWTYPE

%TYPE

%TYPE permet de déclarer des variables en relation avec le type de données d'une colonne dans une table existante :

DECLARE v_id ORDERS.ORDER_ID%TYPE

L'avantage ici est que si le type de données change, le type de données variable reste synchronisé.

Référence :http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/fundamentals.htm#i6080

%ROWTYPE

Ceci est utilisé dans les curseurs pour déclarer une seule variable pour contenir un seul enregistrement du jeu de résultats d'un curseur ou d'une table sans avoir besoin de spécifier des variables individuelles (et leurs types de données). Ex :

DECLARE
  CURSOR c1 IS
     SELECT last_name, salary, hire_date, job_id 
       FROM employees 
      WHERE employee_id = 120;

  -- declare record variable that represents a row fetched from the employees table
  employee_rec c1%ROWTYPE; 

BEGIN
 -- open the explicit cursor and use it to fetch data into employee_rec
 OPEN c1;
 FETCH c1 INTO employee_rec;
 DBMS_OUTPUT.PUT_LINE('Employee name: ' || employee_rec.last_name);
END;
/