我第一次体验Oracle和TOAD(我知道SSMS).我在更新过程中的输入参数旁边遇到了这个"%Type",我不知道它是什么或它意味着什么.我在Google上找到了与"%Rowtype"相关的链接.是同一件事还是完全不同的事情?
如果这很模糊,我道歉.一如既往,感谢您的帮助.
OMG*_*ies 56
Oracle(和PostgreSQL)有:
%TYPE 用于声明与现有表中列的数据类型相关的变量:
DECLARE v_id ORDERS.ORDER_ID%TYPE
Run Code Online (Sandbox Code Playgroud)
这样做的好处是,如果数据类型发生变化,则变量数据类型保持同步.
参考:http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/fundamentals.htm#i6080
这在游标中用于声明单个变量以包含来自游标或表的结果集的单个记录,而无需指定单个变量(及其数据类型).例如:
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;
/
Run Code Online (Sandbox Code Playgroud)