【问题标题】:PLSQL/ How to add values during iteration of associative arrayPLSQL/如何在关联数组的迭代过程中添加值
【发布时间】:2024-05-23 15:20:02
【问题描述】:

我在PLSQL过程中需要这样的东西

 arrayCount:=parArray.Count;
 For i In 1 .. arrayCount Loop
    lsPar(i):=parArray(i);
 End Loop;

有可能吗?谢谢你的建议! :)

【问题讨论】:

  • :我想你没试过一次,试试这个你就会知道这是否可行
  • 我试过了,还是不行……它要求我 DECLARE lsPar
  • @user1518308:如果您发布完整的过程,我们可以帮助您找出问题所在。该错误消息听起来好像您从未声明过lsPar
  • 但是我不需要将值添加到 lsPar... 我需要将值添加到 lsPar1、lsPar2、lsPar3、lsPar4 以及我声明的这些变量

标签: sql plsql varray


【解决方案1】:

如果你正在处理oracle,那么这个匿名块将为你工作

 declare
    TYPE parArray IS TABLE OF VARCHAR2(64) index by binary_integer;
    v_parArray parArray;
    arrayCount number;
    lsPar parArray;

    begin
    v_parArray(1):='A';
    v_parArray(2):='B';
    v_parArray(3):='C';

    arrayCount:=v_parArray.Count;
       For i In 1 .. arrayCount 
       Loop
          lsPar(i):=v_parArray(i);
       End Loop;

     arrayCount:=lsPar.Count;
        For i In 1 .. arrayCount
         Loop
          dbms_output.put_line('The value of Ispar at index '||i||' is '||lsPar(i));
        End Loop;
     end;  

输出

 The value of Ispar at index 1 is A
 The value of Ispar at index 2 is B
 The value of Ispar at index 3 is C

【讨论】: