Oracle (और PostgreSQL) में है:
- % प्रकार
- %ROWTYPE
% प्रकार
%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;
/