簡體   English   中英

通過 PL/SQL 使用 FOR 循環在表中插入不同的記錄

[英]Insert different record in table using FOR loop by PL/SQL

我想以這種方式在表中插入數據,以便每當命令運行時,都會輸入不同的數據。 像,

create table oppo
(
name varchar(10),
class varchar(10),
roll number (5)
);
declare
s number;
i number;
n char(10);
c char(10);
r number;
begin
s:=:no_of_records;
for i in 1..s LOOP
n:=:Enter_Name;
c:=:Enter_Class;
r:=:Enter_Roll;
insert into oppo (name,class,roll) values (n,c,r);
END LOOP;
End; 

當我運行程序時,輸入 no_of_records(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.

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM