PLSQL Language Referenc-PL/SQL集合和記錄-關聯陣列
關聯陣列
原來稱為PL/SQL表或索引表,是鍵值對的集合。每個鍵一個唯一索引,用於確定關聯的值。
變數名(索引) |
索引是有序排列,而不是按建立的順序。對於字串型別的索引,排序的順序由NLS_SORT和NLS_COMP初始化引數決定。
像資料庫表:
n 是空的(但不是NULL),直到你填充它。
n 可以容納不確定數量的元素,可以在不知道位置的情況下訪問它們。
不像資料庫表:
n 不需要磁碟空間和網路操作
n 不能使用DML語句操作
-- 使用字串索引的關聯陣列 DECLARE TYPE population IS TABLE OF NUMBER -- 關聯陣列元素型別 INDEX BY VARCHAR2(64); -- 索引是字串
city_population population; -- 關聯陣列變數 i VARCHAR2(64);
BEGIN --新增元素 city_population('Smallville') := 2000; city_population('Midland') := 750000; city_population('Megalopolis') := 1000000;
-- 改變值 city_population('Smallville') := 2001;
-- 輸出關聯陣列 i := city_population.FIRST; -- 獲取第1個元素 WHILE i IS NOT NULL LOOP DBMS_Output.PUT_LINE (i || ' = ' || city_population(i)); i := city_population.NEXT(i); -- 獲取下一下元素 END LOOP;
END;
|
--求1-n的和再乘以一個數,只適用於1-10 DECLARE TYPE sum_multiples IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER; n PLS_INTEGER := 5; sn PLS_INTEGER := 10; m PLS_INTEGER := 3; --函式的返回值為一個關聯陣列 FUNCTION get_sum_multiples ( multiple IN PLS_INTEGER, num IN PLS_INTEGER ) RETURN sum_multiples IS s sum_multiples; BEGIN FOR i IN 1..num LOOP s(i) := multiple * ((i * (i + 1)) / 2); END LOOP; RETURN s; END get_sum_multiples;
BEGIN DBMS_OUTPUT.PUT_LINE ( '1到 ' || TO_CHAR(n) || '的和'|| ' 乘以 ' || TO_CHAR(m) || ' = ' || TO_CHAR(get_sum_multiples (m, sn)(n)) );
END;
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1107182/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PLSQL Language Referenc-PL/SQL集合和記錄-關聯陣列-宣告關聯陣列常量SQL陣列
- PLSQL Language Referenc-PL/SQL集合和記錄-關聯陣列-正確地使用關聯陣列SQL陣列
- PLSQL Language Referenc-PL/SQL集合和記錄-多維集合SQL
- PLSQL Language Referenc-PL/SQL集合和記錄-集合型別SQL型別
- PLSQL Language Referenc-PL/SQL集合和記錄-集合構造器SQL
- PLSQL Language Referenc-PL/SQL集合和記錄-可變陣列-正確地使用可變陣列SQL陣列
- PLSQL Language Referenc-PL/SQL集合和記錄-NSL引數值對字串索引的關聯陣列的影響SQL字串索引陣列
- PLSQL Language Referenc-PL/SQL集合和記錄-使用記錄更新行SQL
- PLSQL Language Referenc-PL/SQL集合和記錄-巢狀表SQL巢狀
- PLSQL Language Referenc-PL/SQL集合和記錄-記錄更新和插入的限制SQL
- PLSQL Language Referenc-PL/SQL集合和記錄-集合比較-和NULL比較可變陣列和巢狀表變數SQLNull陣列巢狀變數
- PLSQL Language Referenc-PL/SQL集合和記錄-集合變數賦值-給可變陣列和巢狀表賦NULL值SQL變數賦值陣列巢狀Null
- PLSQL Language Referenc-PL/SQL集合和記錄-記錄比較-將記錄插入到表中SQL
- PLSQL Language Referenc-PL/SQL集合和記錄-集合比較-比較巢狀表是否相等SQL巢狀
- PLSQL Language Referenc-PL/SQL集合和記錄-集合變數賦值-資料的相容性SQL變數賦值
- PLSQL Language Referenc-PL/SQL集合和記錄-使用Multiset Conditions比較巢狀表SQL巢狀
- PLSQL Language Referenc-PL/SQL集合和記錄-集合變數賦值-將集合操作結果賦給巢狀表SQL變數賦值巢狀
- PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-偽列SQL
- PLSQL Language Referenc-PL/SQL子程式-前向宣告SQL
- PLSQL Language Referenc-PL/SQL子程式-子程式呼叫SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-事務處理和控制SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-自治事務(二)SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數SQL變數
- PLSQL Language Referenc-PL/SQL子程式-使用子程式的原因SQL
- PLSQL Language Referenc-PL/SQL動態SQL-何時需要動態SQLSQL
- PLSQL Language Referenc-PL/SQL靜態SQL-游標變數-開啟和關閉游標變數SQL變數
- PLSQL Language Referenc-PL/SQL靜態SQL-事務處理和控制-savepoint語句SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-語句SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-事務處理和控制-隱式回滾SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-游標-開啟和關閉顯式游標SQL
- PLSQL Language Referenc-PL/SQL動態SQL-本地動態SQL(EXECUTE IMMEDIATE語句)SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-下限和上限SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-自治事務-控制自治事務SQL
- PLSQL Language Referenc-PL/SQL靜態SQL-查詢結果集處理SQL
- PLSQL Language Referenc-PL/SQL控制語句-順序控制語句-NULLSQLNull
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-CONTINUESQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-EXIT WHENSQL