小编典典

在Oracle sql中,``%Type''是什么意思?

sql

我正在获得有关Oracle和TOAD(我知道SSMS)的第一次经验。我在更新过程中的输入参数旁边遇到了这个“%Type”,我不知道它是什么或意味着什么。我在Google上找到了与“%Rowtype”相关的链接。同一件事或事物完全不同吗?

如果含糊不清,我深表歉意。与往常一样,感谢您的帮助。


阅读 318

收藏
2021-04-15

共1个答案

小编典典

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;
/
2021-04-15