gpt4 book ai didi

plsql - 如何使用循环向 VARRAY 添加值

转载 作者:行者123 更新时间:2023-12-01 10:33:08 25 4
gpt4 key购买 nike

我有一个 VARRAY,我想通过使用循环向这个 VARRAY 添加元素。这是我迄今为止所尝试的。

DECLARE
TYPE code_array_ IS VARRAY(26) OF VARCHAR2(6);
codes_ code_array_;

BEGIN
FOR i IN 1..26 LOOP
codes_(i) := dbms_random.string('U',6);
END LOOP;
END;

上面的代码给了我一个错误

"ORA-06531: Reference to uninitialized collection"

最佳答案

正如错误消息所说,您需要 initialise the collection variable :

...
BEGIN
codes_ := code_array_();
...

但是您还需要调整它的大小,或者在每次循环时使用一个扩展名:
  FOR i IN 1..26 LOOP    
codes_.extend;
...

或者在开始之前一次性延期:
...
BEGIN
codes_ := code_array_();
...
codes_.extend(26);
FOR i IN 1..26 LOOP
...

您还可以使用后扩展大小来控制循环,以再次保存硬编码 26:
DECLARE
TYPE code_array_ IS VARRAY(26) OF VARCHAR2(6);
codes_ code_array_;
BEGIN
codes_ := code_array_();
codes_.extend(26);
FOR i IN 1..codes_.count LOOP
codes_(i) := dbms_random.string('U',6);
END LOOP;
END;
/

PL/SQL procedure successfully completed.

Read more about collections .

关于plsql - 如何使用循环向 VARRAY 添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com