加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle PL/SQL – 如何创建一个简单的数组变量?

发布时间:2020-12-12 14:46:40 所属栏目:百科 来源:网络整理
导读:我想创建一个内存数组变量,可以在我的PL / SQL代码中使用。我在Oracle PL / SQL中找不到使用纯内存的任何集合,它们似乎都与表相关联。我想在我的PL / SQL(C#语法)中做这样的事情: string[] arrayvalues = new string[3] {"Matt","Joanne","Robert"}; 编辑
我想创建一个内存数组变量,可以在我的PL / SQL代码中使用。我在Oracle PL / SQL中找不到使用纯内存的任何集合,它们似乎都与表相关联。我想在我的PL / SQL(C#语法)中做这样的事情:
string[] arrayvalues = new string[3] {"Matt","Joanne","Robert"};

编辑:
Oracle:9i

对于固定大小的数组,可以使用VARRAY:
declare
   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。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读