【问题标题】:Passing value multiple times to a variable in a pl/sql loop将值多次传递给 pl/sql 循环中的变量
【发布时间】:2016-02-14 07:53:01
【问题描述】:

我一直在使用基本的 pl/sql,需要一个简单场景的解决方案。将值插入到用户输入值的表中。

我想出了以下代码,但它只向用户询问一次值,并为所有时间循环运行插入相同的值。相反,我希望它要求用户在每次循环迭代中输入一些值。请提出正确的方法。这是我的代码:

declare 
  n number(2) := &n;
  a abc.id%type;
  b abc.name%type;
  i number(2);
begin
  for i in 1..n
  loop
    a := &a;
    b := &b;
    insert into abc values(a,b);
  end loop;
end;

这是表格:abc(id, name)

【问题讨论】:

    标签: sql oracle variables plsql variable-assignment


    【解决方案1】:

    PL/SQL 不是交互式语言。它没有提示用户或接受响应的概念。

    这个语法?

    a := &a;
    b := &b;
    

    它是 SQL*Plus,它一个面向用户的客户端。它在 SQL*Plus 中运行匿名 PL/SQL 块时有效,但如果您要将代码转换为存储过程,则会失败。

    解决方案是为手头的任务选择方法技术。如果您需要的是交互式用户体验,请使用适当的 UI 语言编写程序;使用 APEX 将其保留为 PL/SQL。如果您需要将多个值传递给自治 PL/SQL 程序,请编写一个带有集合类型输入参数的存储过程。

    【讨论】:

      猜你喜欢
      • 2021-10-06
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 2017-04-01
      • 2013-06-19
      • 2023-04-07
      • 1970-01-01
      • 2020-11-25
      相关资源
      最近更新 更多