oracle儲存過程中如何使用陣列 附範例

2021-06-26 22:51:03 字數 2040 閱讀 9415

原文:

在pl/sql中是沒有陣列(array)概念的。但是如果程式設計師想用array的話,就得變通一下,用type 和table of record來代替多維陣列,一樣挺好用的。

emp_type 就好象乙個table 中的一條record 一樣,裡面有id, name,gender等。emp_type_array 象個table, 裡面含有一條條這樣的record (emp_type),就象多維陣列一樣。

--單維陣列

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;

用下面語句宣告陣列型別

type intarray is varry(30) of integer;

用下面語句宣告乙個陣列變數

declare 

a intarray;用下面語句宣告陣列型別

type intarray is varry(30) of integer;

用下面語句宣告乙個陣列變數

declare 

a intarray;用下面語句宣告陣列型別

type intarray is varry(30) of integer;

用下面語句宣告乙個陣列變數

declare 

a intarray;

Oracle儲存過程中如何使用游標

本儲存過程的功能 把test tbl2中與test tbl1中id相同但salary不同的記錄中的salary的值更新為test tbl1中的salary的值 建立儲存過程 create or replace procedure p update test tbl2 is 定義游標 cursor c...

MySQL儲存過程中如何使用where in

在mysql儲存過程中,有時候我們需要傳遞乙個字串資料並希望在過程中通過where in 查詢出多條記錄。現通過一簡單的例項來說明下 對於乙個查詢商品的儲存過程如 proc get goods info in goodsids varchar 100 現在我們希望通過過程查詢出goodsid為1,2...

儲存過程中,if語句使用

if語句 判斷使用者輸入的數字 set serveroutput on 1.提示資訊 2.接收鍵盤輸入 num 是乙個位址值 sql優化 num繫結變數 盡量使用繫結變數 select from emp where deptno 10 執行計畫 select from emp where deptn...