gpt4 book ai didi

oracle - plsql 脚本中的数组处理

转载 作者:行者123 更新时间:2023-12-01 00:36:27 25 4
gpt4 key购买 nike

我想将一个数组从 shell 脚本传递到我的 PL/SQL 脚本作为单个参数,然后尝试使用索引访问 PL/SQL 脚本中的数组元素。我怎样才能做到这一点?

最佳答案

这是一种方法。您将 shell 数组作为空格分隔的字符串传递给存储过程,然后将其转换为集合 - 有多种方法可以做到这一点。在这个例子中,我使用 string_to_table()内置功能apex_util包裹。

这是程序(可能是功能,这取决于您):

create or replace procedure p1(p_list in varchar2)
is
l_array apex_application_global.vc_arr2;
begin
-- convert p_list varchar2 sting to a collection
l_array := apex_util.string_to_table(p_list, ' ');
-- iterate through the collection and print each element
for i in l_array.first..l_array.last loop
dbms_output.put_line(l_array(i));
end loop;
end;

这里我们定义并传递shell数组:
array[0] = 'a'
array[1] = 'b'
array[2] = 'c'

sqlplus testlab/testlab@nkpdb <<EOF
set serveroutput on
exec p1('${array[*]}');
EOF

结果:
SQL> exec p1('a b c');
a
b
c

PL/SQL procedure successfully completed

关于oracle - plsql 脚本中的数组处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40734402/

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