Oracle (en PostgreSQL) hebben:
- %TYPE
- %ROWTYPE
%TYPE
%TYPE
wordt gebruikt om variabelen te declareren met betrekking tot het gegevenstype van een kolom in een bestaande tabel:
DECLARE v_id ORDERS.ORDER_ID%TYPE
Het voordeel hiervan is dat als het gegevenstype verandert, het variabele gegevenstype synchroon blijft.
Referentie:http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/fundamentals.htm#i6080
%ROWTYPE
Dit wordt gebruikt in cursors om te declareren dat een enkele variabele een enkele record bevat uit de resultatenset van een cursor of tabel zonder dat afzonderlijke variabelen (en hun gegevenstypes) hoeven te worden gespecificeerd. Bijv.:
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;
/