Oracle PL/SQL表、記錄類型
阿新 • • 發佈:2018-01-29
記錄 內容 屬性方法 oracl col first integer 自定義 tab
一、PL/SQL表
pl/sql表只有兩列,其中第一列為序號列為INTEGER類型,第二列為用戶自定義列。
定義:
TYPE <類型名> IS TABLE OF <列的類型> [NOT NULL] INDEX BY BINARY_INTEGER;
<列的類型>可以為Oracle的數據類行以及用戶自定義類型。
屬性方法:
.count --返回pl/sql表的總行數
.delect --刪除pl/sql表的所有內容
.delect(行數) --刪除pl/sql表的指定的行
.delct(開始行,結束行) --刪除pl/sql表的多行
.first --返回表的第一個INDEX;
.next(行數) --這個行數的下一條的INDEX;
.last --返回表的最後一個INDEX;
二、PL/SQL記錄
pl/sql表只有一行,但是有多列。
定義:
TYPE <類型名> IS RECORD <列名1 類型1,列名2 類型2,...列名n 類型n,> [NOT NULL]
<列的類型>可以為Oracle的數據類行以及用戶自定義類型;可以是記錄類型的嵌套。
三、結合使用PL/SQL表和PL/SQL記錄
示例:
DECLARE CURSOR c_1 is select empno,ename,job,sal from emp; TYPE myrecord IS RECORD(empno emp.empno%type,ename emp.ename%type,job emp.job%type,sal emp.sal%type);--定義一個名為myrecoed的PL/sql記錄類型; TYPE mytableIS TABLE OF myrecord index by binary_integer; --定義一個名為mytable的PL/sql表類型;字段類型為PL/sql記錄類型; n number:=1; tab_1 mytable; --為mytable類型實例化一個tab_1對象; BEGIN --賦值 for i in c_1 loop tab_1(n).empno:=i.empno; tab_1(n).ename:=i.ename; tab_1(n).job:=i.job; tab_1(n).sal:=i.sal; n:=n+1; end loop; n:=1; --輸出 for i in n..tab_1.count loop dbms_output.put_line(i||‘ ‘||tab_1(i).empno||‘ ‘||tab_1(i).ename||‘ ‘||tab_1(i).job||‘ ‘||tab_1(i).sal); end loop; END;
Oracle PL/SQL表、記錄類型