欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

存储过程中的数组

程序员文章站 2022-04-01 23:41:18
...
1.存储过程中如何自定义一个数组,下面这个是最优的
1.1直接调用
DECLARE
  TYPE months_varray IS VARRAY(12) OF STRING(9 CHAR);
  arr MONTHS_VARRAY :=
    months_varray('January','February','March'
                 ,'April','May','June'
                 ,'July','August','September'
                 ,'October','November','December');
  TYPE calendar_table IS TABLE OF VARCHAR2(9 CHAR) INDEX BY BINARY_INTEGER;
  calendar CALENDAR_TABLE;


begin
for i in arr.first..arr.last loop
     DBMS_OUTPUT.PUT_LINE(arr(i));
     calendar(i):=arr(i);
end loop;

  DBMS_OUTPUT.PUT_LINE('==========');
  for i in calendar.first..calendar.last loop
     DBMS_OUTPUT.PUT_LINE(calendar(i));
  end loop;
end;

1.2生成存储过程,然后被调用
create or replace procedure p_test as
type t_Test is table of varchar2(10);
test t_test:=t_test('A','B','C','D','E','F','G','H','J','K','L');
begin
for i in test.first .. test.last loop
dbms_output.put_line(test(i));
end loop;
end;