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

前端之家收集整理的这篇文章主要介绍了oracle – PL / SQL:从表中选择一个assoc数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在一个查询中选择数据到一个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;
原文链接:https://www.f2er.com/oracle/205539.html

猜你在找的Oracle相关文章