oracle - 获取关联数组的键和值

标签 oracle collections plsql

我的问题是我想从关联数组中获取键和值,但我只能找到如何从键中获取值。这是我发现的:

DECLARE
 TYPE assoc_array IS TABLE OF VARCHAR2(30)
 INDEX BY VARCHAR2(30);

 state_array assoc_array;
BEGIN
  state_array('Alaska') := 'Juneau';
  state_array('California') := 'Sacramento';

  dbms_output.put_line(state_array('Alaska'));
  dbms_output.put_line(state_array('California'));

END;

这会打印朱诺和萨克拉门托,但我想要这样的东西:
DECLARE
 TYPE assoc_array IS TABLE OF VARCHAR2(30)
 INDEX BY VARCHAR2(30);

 state_array assoc_array;
BEGIN
  state_array('Alaska') := 'Juneau';
  state_array('California') := 'Sacramento';

    for x in 1..state_array.count loop
    dbms_output.put_line(state_array(x).key || state_array(x).value);
    end loop;
END;

那可能吗?。提前致谢!!

最佳答案

其实有一种方法,请考虑下面的代码

declare
   type assoc_array is table of varchar2(30) index by varchar2(30);

   state_array assoc_array;
   l_idx varchar2(30);
begin
   state_array('Alaska') := 'Juneau';
   state_array('California') := 'Sacramento';

   l_idx := state_array.first;
   while (l_idx is not null) loop
      dbms_output.put_line('Key = ' || l_idx || ':Value = ' || state_array(l_idx));
      l_idx := state_array.next(l_idx);
   end loop;
end;

输出将是
Key = Alaska:Value = Juneau
Key = California:Value = Sacramento

关于oracle - 获取关联数组的键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175030/

相关文章:

sql - 如何使用过程和用户​​输入在 PL/SQL 中搜索日期

sql - 在 varchar 列中查找非数字值

search - Java 库方法在集合中查找项目并检查是否完全匹配

Java:如何创建包含数组的对象数组?

java - Set Of Sets on contain 方法是否检查顺序?

plsql - PL/SQL错误代码PLS-00103

xml - 如何重命名 Oracle XMLTYPE 节点

oracle - 我可以使用 imp/exp 工具将数据库从 Oracle 9 迁移到 Oracle 10

sql - 查询在使用连接时抛出 ORA-00904 Invalid Identifier

oracle - oracle中TZ_OFFSET函数的返回数据类型是什么?