Oracle 如何更改关联数组中的下标/索引值?

Oracle 如何更改关联数组中的下标/索引值?,oracle,plsql,Oracle,Plsql,是否可以更改关联数组中现有元素的下标/索引值 declare type a_arr is table of varchar2(20) index by pls_integer; tb1 a_arr; begin tb1(1) := 'aaaa'; tb1(2) := 'bbbb'; tb1(3) := 'cccc'; end; / 在上面的关联数组tb1中,是否可以将下标值从1更改为10(即从tb1(1)更改为tb1(10)),而无需删除或在表中创建新元素?不清楚您

是否可以更改关联数组中现有元素的下标/索引值

 declare
  type a_arr is table of varchar2(20) index by pls_integer;
  tb1 a_arr;
 begin
  tb1(1) := 'aaaa';
  tb1(2) := 'bbbb';
  tb1(3) := 'cccc';
 end;
 /

在上面的关联数组
tb1
中,是否可以将下标值从1更改为10(即从
tb1(1)
更改为
tb1(10)
),而无需删除或在表中创建新元素?

不清楚您想做什么。这是一个基本的例子。输出为“aaaa”的10倍。您可以在两者之间添加一些逻辑。例如,如果i=3,那么tbl_val:='bbbb'或smth lk this。例如,如果创建过程,也可以参数化开始和/或结束循环边界

DECLARE
  type a_arr is table of varchar2(20) index by pls_integer;
  tb1 a_arr;
  tbl_val VARCHAR2(20):= 'aaaa';
BEGIN
  FOR i IN 1..10 LOOP
    tb1(i):= tbl_val;
    dbms_output.put_line(tb1(i));
  END LOOP;
END;
/

不确定不删除是否可行,因为关联数组不能像Python字典中那样弹出。你到底想用它做什么?@KaushikNayak:事实上,我只是想知道我们是否可以更改关联数组的下标值。我们需要添加emp_id作为指向工资的索引值。非常感谢。