首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PLSQL中Varray中值的动态分配

PLSQL中Varray中值的动态分配
EN

Stack Overflow用户
提问于 2019-09-02 19:09:26
回答 1查看 297关注 0票数 0

我想动态分配VARRAY的值。例如,我声明了一个大小为5的varray,在这个varray中,我想动态插入用户输入的5个值。该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2019-09-02 22:35:49

PL/SQL是一种用于自治代码的语言。它并不具备强大的用户交互能力。它不接受用户输入,因此您需要在客户端处理用户输入,并将值提交给PL/SQL程序。在您的示例中,这意味着获取用户输入,将其组装到您的varray类型的本地声明的变量中,并将该变量作为参数传递给存储过程。

您说您正在使用Oracle SQL Developer运行,因此我们可以使用SQL*Plus替代变量(使用与符号)来接受用户输入。

所以。像这样的VARRAY ..。

代码语言:javascript
复制
create or replace type params_va as varray(5) of varchar2(128);
/

...and一个像这样的玩具程序...

代码语言:javascript
复制
create or replace procedure p1 (p_args in params_va)
is
begin
  for i in 1..5 loop
    dbms_output.put_line(p_args(i));
  end loop;
end;
/

请注意,该过程接受一个VARRAY类型的参数。

现在,我们可以在Oracle SQL Developer中运行以下脚本。它将弹出5个对话框,每个对话框对应于VARRAY中的每个元素(严格地说,每个替代变量对应一个):

代码语言:javascript
复制
declare
  l_args params_va := new params_va();
begin
  l_args.extend(5);

  l_args(1) := '&arg1';
  l_args(2) := '&arg2';
  l_args(3) := '&arg3';
  l_args(4) := '&arg4';
  l_args(5) := '&arg5';

  p1(l_args);

end;
/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57755912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档