Oracle 中的表變量(數組變量) |
發布時間: 2012/8/16 17:15:00 |
表類型變量又稱index_by表或則PL/SQL表,和數據表是有區別的,是類似于數組的鍵和值的兩列結構。 其定義語法如下: type 表類型名 is table of 類型 index by binary_integer; 表變量名 表類型; 類型可以是number 、varchar2、date 等數據類型,index by binary_integer 子句代表以符號整數為索引,
這樣訪問表類型變量中的數據方法就是“表變量名(索引符號整數)”,注意與數組不同的是該索引可以是不連續的,而且與數據庫表不同 不能在index-by 表中使用select、insert、update 等sql操作。 下面的程序定義了名為tabletype1和tabletype2的兩個一維表類型,相當于一維數組。table1和table2分別是兩種表類型變量。 Declare type tabletype1 is table of varchar2(10) index by binary_integer; type tabletype2 is table of scott.testtable.recordnumber%type index by binary_integer; table1 tabletype1; table2 tabletype2; begin table1(1):='大學'; table1(2):='大專'; table2(1):=88; table2(2):=55; dbms_output.put_line(table1(1)||table2(1)); dbms_output.put_line(table1(2)||table2(2)); end; 定義多維表類型變量 : Declare type tabletype1 is table of testtable%rowtype index by binary_integer; table1 tabletype1; begin select * into table1(60) from scott.testtable where recordnumber=60; dbms_output.put_line(table1(60).recordnumber||' '||table1(60).currentdate); end; 該程序定義了名為tabletype1的多維表類型,相當于多維數組,table1是多維表類型變量,將數據表tempuser.testtable中recordnumber為60的記錄提取出來存放在table1中并顯示 在定義好的表類型變量里,可以使用count、delete、first、last、next、exists和prior等屬性進行操作,使用方法為“表變量名.屬性”,返回的是數字。 本文出自:億恩科技【www.vbseamall.com】
這樣訪問表類型變量中的數據方法就是“表變量名(索引符號整數)”,注意與數組不同的是該索引可以是不連續的,而且與數據庫表不同 不能在index-by 表中使用select、insert、update 等sql操作。 下面的程序定義了名為tabletype1和tabletype2的兩個一維表類型,相當于一維數組。table1和table2分別是兩種表類型變量。 Declare type tabletype1 is table of varchar2(10) index by binary_integer; type tabletype2 is table of scott.testtable.recordnumber%type index by binary_integer; table1 tabletype1; table2 tabletype2; begin table1(1):='大學'; table1(2):='大專'; table2(1):=88; table2(2):=55; dbms_output.put_line(table1(1)||table2(1)); dbms_output.put_line(table1(2)||table2(2)); end; 定義多維表類型變量 : Declare type tabletype1 is table of testtable%rowtype index by binary_integer; table1 tabletype1; begin select * into table1(60) from scott.testtable where recordnumber=60; dbms_output.put_line(table1(60).recordnumber||' '||table1(60).currentdate); end; 該程序定義了名為tabletype1的多維表類型,相當于多維數組,table1是多維表類型變量,將數據表tempuser.testtable中recordnumber為60的記錄提取出來存放在table1中并顯示 在定義好的表類型變量里,可以使用count、delete、first、last、next、exists和prior等屬性進行操作,使用方法為“表變量名.屬性”,返回的是數字。 本文出自:億恩科技【www.enidc.com】 --> |