因為在PL/SQL中並沒有數組,這是我查資料找的範例和自己寫的範例來解釋如何在PL/SQL中使用數組。也許很多人已知道,不過就是讓不知道的朋友們瞭解一下吧。
---------------------- 單維數組 ------------------------
DECLARE TYPE emp_ssn_array IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
best_employees emp_ssn_array; worst_employees emp_ssn_array;
BEGIN best_employees(1) := '123456'; best_employees(2) := '888888';
worst_employees(1) := '222222'; worst_employees(2) := '666666';
FOR i IN 1..best_employees.count LOOP DBMS_OUTPUT.PUT_LINE('i='|| i || ', best_employees= ' ||best_employees(i) || ', worst_employees= ' ||worst_employees(i)); END LOOP;
END; |
---------------------- 多維陣列 ------------------------
DECLARE
TYPE emp_type IS RECORD ( emp_id employee_table.emp_id%TYPE, emp_name employee_table.emp_name%TYPE, emp_gender employee_table.emp_gender%TYPE );
TYPE emp_type_array IS TABLE OF emp_type INDEX BY BINARY_INTEGER;
emp_rec_array emp_type_array; emp_rec emp_type;
BEGIN emp_rec.emp_id := 300000000; emp_rec.emp_name := 'Barbara'; emp_rec.emp_gender := 'Female';
emp_rec_array(1) := emp_rec;
emp_rec.emp_id := 300000008; emp_rec.emp_name := 'Rick'; emp_rec.emp_gender := 'Male';
emp_rec_array(2) := emp_rec;
FOR i IN 1..emp_rec_array.count LOOP DBMS_OUTPUT.PUT_LINE('i='||i ||', emp_id ='||emp_rec_array(i).emp_id ||', emp_name ='||emp_rec_array(i).emp_name ||', emp_gender = '||emp_rec_array(i).emp_gender); END LOOP;
END; -------------- Result -------------- i=1, emp_id =300000000, emp_name =Barbara, emp_gender = Female i=2, emp_id =300000008, emp_name =Rick, emp_gender = Male |
註:在PL/SQL中是沒有數組(Array)概念的。但是如果程式員想用Array的話,就得變通一下,用TYPE 和Table of Record來代替多維陣列,一樣挺好用的。
emp_type 就好象一個table 中的一條record 一樣,裡面有id, name,gender等。emp_type_array 象個table, 裡面含有一條條這樣的record (emp_type),就象多維陣列一樣。
(T111)
COPY FROM:http://tech.ccidnet.com/art/1105/20050802/300959_1.html