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

oracle – PL / SQL:从表中选择一个assoc数组

发布时间:2020-12-12 13:48:21 所属栏目:百科 来源:网络整理
导读:我试图在一个查询中选择数据到一个pl / sql关联数组.我知道我可以用一个硬编码的键来做到这一点,但是我想看看是否有一些方法可以引用另一列(关键列). DECLARETYPE VarAssoc IS TABLE OF varchar2(2) INDEX BY varchar2(3);vars VarAssoc;BEGINSELECT foo,bar
我试图在一个查询中选择数据到一个pl / sql关联数组.我知道我可以用一个硬编码的键来做到这一点,但是我想看看是否有一些方法可以引用另一列(关键列).
DECLARE
TYPE VarAssoc IS TABLE OF varchar2(2) INDEX BY varchar2(3);
vars VarAssoc;
BEGIN
SELECT foo,bar INTO vars(foo) FROM schema.table;
END;

我得到一个错误,说foo必须在我这样做时被声明.有没有办法在单个查询中创建我的关联数组,还是需要回到FOR循环?

只要阅读你对APC答案的评论,这听起来像是你自己想出来的.但是我想我会把答案放在未来的搜索者身上.

这是更简单的代码,但没有使用BULK COLLECT的速度优势.只需循环遍历查询返回的行,并单独设置关联数组中的元素.

DECLARE
  TYPE VarAssoc IS TABLE OF varchar2(200) INDEX BY varchar2(30);
  vars VarAssoc;
BEGIN
  FOR r IN (SELECT table_name,tablespace_name FROM user_tables) LOOP
    vars(r.table_name) := r.tablespace_name;
  END LOOP;

  dbms_output.put_line( vars('JAVA$OPTIONS') );
END;

(编辑:李大同)

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

    推荐文章
      热点阅读