Oracle(およびPostgreSQL)には次のものがあります:
- %TYPE
- %ROWTYPE
%TYPE
%TYPE
既存のテーブルの列のデータ型に関連する変数を宣言するために使用されます:
DECLARE v_id ORDERS.ORDER_ID%TYPE
ここでの利点は、データ型が変更されても、可変データ型が同期されたままになることです。
参照:http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/fundamentals.htm#i6080
%ROWTYPE
これはカーソルで使用され、個々の変数(およびそれらのデータ型)を指定する必要なしに、カーソルまたはテーブルの結果セットからの単一のレコードを含む単一の変数を宣言します。例:
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;
/