Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PLSQL读取输入_Sql - Fatal编程技术网

PLSQL读取输入

PLSQL读取输入,sql,Sql,为什么这不起作用 Declare type tablica is table of varchar2(30) index by binary_integer; tab tablica; i integer :=0; n integer :=0; inp integer:='&inp'; one varchar(20); Begin While n<3 Loop n:=n+1; tab(n):='&one'; End Loop; (....) 声明 tablica类

为什么这不起作用

Declare
type tablica is table of varchar2(30)
index by binary_integer;
tab tablica;
i integer :=0;
n integer :=0;
inp integer:='&inp';
one varchar(20);

Begin
While n<3 Loop

n:=n+1;
tab(n):='&one';

End Loop;

(....)
声明
tablica类型为varchar2(30)的表格
通过二进制_整数进行索引;
tabtablica;
i整数:=0;
n整数:=0;
inp整数:='&inp';
一个varchar(20);
开始

而n为什么需要在PL/SQL中使用&呢?替换是SQL。这将有助于:

Declare
  type tablica is table of varchar2(30) index by binary_integer;
  tab tablica;
  i integer :=0;
  n integer :=0;
 --inp integer:='&inp';
 one varchar(20);
Begin
 While n<3 Loop
  n:=n+1;

  If n = 1 Then
     tab(n):='one';
  elsif
    n = 2 Then
     tab(n):='two';
  Else
     tab(n):='three';
  End if;

   dbms_output.put_line(n||chr(9)||tab(n));
 End Loop;
End;
/
声明
tablica类型是varchar2(30)索引由二进制_整数组成的表;
tabtablica;
i整数:=0;
n整数:=0;
--inp整数:='&inp';
一个varchar(20);
开始

在nHello中,我需要在选项卡(n)中输入几次信息,因此我使用了&,但循环正在运行,它只要求我输入一次并将其放入所有选项卡()-我想:步骤1:Loop->将我的输入从&inp放入选项卡(1),步骤2:Loop->覆盖&inp,将我的新输入放入选项卡(2),等等,但一旦我把东西放进&inp它就不会了change@user2107202-在PL/SQL中,您可以使用参数创建过程/函数,而不是使用&。然后运行该过程并将值替换为参数。使用您的代码,该过程将运行一次,并要求您输入一次值。然后它将返回您输入3次的值。这是你写的。把真实的数据和需求放在你的例子中。您好,就是这样。也许有人举过一个例子,如何创建一个循环,将输入动态地放入表变量中?这是错误的。OP没有发布过程或函数,而是一个匿名PL/SQL块,它完全能够接受替换参数。虽然不一定是最好的方法,但这是一种接受用户输入的简单方法。@Ben-我不是在争论,是的,在PL/SQL中使用&是可能的。但在现实世界中,你们通常不会做这样的事情。