我想创建一个内存数组变量,可以在我的PL / sql代码中使用。我在Oracle PL / sql中找不到使用纯内存的任何集合,它们似乎都与表相关联。我想在我的PL / sql(C#语法)中做这样的事情:
string[] arrayvalues = new string[3] {"Matt","Joanne","Robert"};
编辑:
Oracle:9i
对于固定大小的数组,可以使用VARRAY:
原文链接:https://www.f2er.com/oracle/208720.htmldeclare type array_t is varray(3) of varchar2(10); array array_t := array_t('Matt','Joanne','Robert'); begin for i in 1..array.count loop dbms_output.put_line(array(i)); end loop; end;
或无限数组的TABLE:
... type array_t is table of varchar2(10); ...
这里的“表”这个词与数据库表无关,令人困惑。两种方法都创建内存数组。
有了这两个,你需要在添加元素之前初始化和扩展集合:
declare type array_t is varray(3) of varchar2(10); array array_t := array_t(); -- Initialise it begin for i in 1..3 loop array.extend(); -- Extend it array(i) := 'x'; end loop; end;
第一个索引是1不是0。