Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
通过PL/SQL使用FOR循环在表中插入不同的记录_Sql_Oracle_Plsql - Fatal编程技术网

通过PL/SQL使用FOR循环在表中插入不同的记录

通过PL/SQL使用FOR循环在表中插入不同的记录,sql,oracle,plsql,Sql,Oracle,Plsql,我希望以这种方式在表中插入数据,以便在命令运行时输入不同的数据。 像 当我运行程序时,输入no_of_记录(5或任意数字),并输入名称和其他数据。结果,相同数据显示5次(或记录输入次数)。我希望每5次输入唯一的数据。PL/SQL过程不是交互式的。如果要插入不同的值,请使用存储过程替换此匿名PL/SQL块,并根据需要多次运行它,每次都提供新值 例如: SQL> create table test (name varchar2(20), class number); Table create

我希望以这种方式在表中插入数据,以便在命令运行时输入不同的数据。 像

当我运行程序时,输入no_of_记录(5或任意数字),并输入名称和其他数据。结果,相同数据显示5次(或记录输入次数)。我希望每5次输入唯一的数据。

PL/SQL过程不是交互式的。如果要插入不同的值,请使用存储过程替换此匿名PL/SQL块,并根据需要多次运行它,每次都提供新值

例如:

SQL> create table test (name varchar2(20), class number);

Table created.

SQL> create or replace procedure p_test (par_name in varchar2, par_class in number) as
  2  begin
  3    insert into test (name, class) values (par_name, par_class);
  4  end;
  5  /

Procedure created.


我的建议是对字符串使用标准的
varchar2
类型,除非您特别需要其他内容,例如
nvarchar2
clob
。不是
char
SQL> create table test (name varchar2(20), class number);

Table created.

SQL> create or replace procedure p_test (par_name in varchar2, par_class in number) as
  2  begin
  3    insert into test (name, class) values (par_name, par_class);
  4  end;
  5  /

Procedure created.
SQL> exec p_test('&name', &class);
Enter value for name: LF
Enter value for class: 1

PL/SQL procedure successfully completed.

SQL> exec p_test('&name', &class);
Enter value for name: Bigfoot
Enter value for class: 2

PL/SQL procedure successfully completed.

SQL> exec p_test('&name', &class);
Enter value for name: Scott
Enter value for class: 3

PL/SQL procedure successfully completed.

SQL> select * From test;

NAME                      CLASS
-------------------- ----------
LF                            1
Bigfoot                       2
Scott                         3

SQL>