我想寫一個PL/SQL程序,用戶輸入'n'次。這裏n是10,但是這隻需要輸入1次,並且顯示該輸入值10次,因爲循環是從1到10.我怎樣編寫一個程序,該程序取'n'個輸入值並顯示它們。用戶輸入'n'次PL/SQL
set serveroutput on;
DECALRE
num NUMBER(10);
BEGIN
for i in 1..10
loop
dbms_output.put_line(&num);
END loop;
END;
/
我想寫一個PL/SQL程序,用戶輸入'n'次。這裏n是10,但是這隻需要輸入1次,並且顯示該輸入值10次,因爲循環是從1到10.我怎樣編寫一個程序,該程序取'n'個輸入值並顯示它們。用戶輸入'n'次PL/SQL
set serveroutput on;
DECALRE
num NUMBER(10);
BEGIN
for i in 1..10
loop
dbms_output.put_line(&num);
END loop;
END;
/
set serveroutput on;
DECALRE
num NUMBER(10) := #
BEGIN
for i in 1..10
loop
dbms_output.put_line(num);
END loop;
END;
/
PL/SQL不是一個交互的語言。 SQL * Plus會提示您輸入一個值,並且它需要獲取所需的所有替換值,然後才能將PL/SQL塊發送到要執行的數據庫。
因此,PL/SQL無法提示用戶輸入循環。
給我的任務是: - 「使用循環插入10條記錄 - pl/sql」 –
因此,如果表中有5列,我是否必須使用50個變量進行插入? –
@DaniyalJavaid,因爲我提到它不可能使用交互式操作。但是,有幾種方法,你可以使用循環計數器或可以使用其他表 – Ravi
讀通過評論:給我
任務是: - 「使用循環插入10個記錄到一個表 - PL/SQL」
和
所以如果表格中有5列,我是否需要使用50個變量 來插入?如果你想
same set of records
要插入到表中10次
回答你上面的問題是NO。以下是你可以做到的方式。當您執行該塊時,它會要求您提升5列的值,並相應地將10組具有相同值的記錄插入表中。見下文。
SQL> DECLARE
num1 NUMBER (10) := &num1;
num2 NUMBER (10) := &num2;
num3 NUMBER (10) := &num3;
num4 NUMBER (10) := &num4;
num5 NUMBER (10) := &num5;
BEGIN
FOR i IN 1 .. 10
LOOP
INSERT INTO TAB (col1,
col2,
col3,
col4,
col5)
VALUES (num1,
num2,
num3,
num4,
num5);
END LOOP;
COMMIT;
END;
/
Enter value for num1: 1
old 2: num1 NUMBER (10) := &num1;
new 2: num1 NUMBER (10) := 1;
Enter value for num2: 2
old 3: num2 NUMBER (10) := &num2;
new 3: num2 NUMBER (10) := 2;
Enter value for num3: 3
old 4: num3 NUMBER (10) := &num3;
new 4: num3 NUMBER (10) := 3;
Enter value for num4: 4
old 5: num4 NUMBER (10) := &num4;
new 5: num4 NUMBER (10) := 4;
Enter value for num5: 5
old 6: num5 NUMBER (10) := &num5;
new 6: num5 NUMBER (10) := 5;
PL/SQL procedure successfully completed.
OUTPUT:
SQL> select * from tab;
COL1 COL2 COL3 COL4 COL5
---------- ---------- ---------- ---------- ----------
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
10 rows selected.
我想,你沒看過OP的問題 – Ravi
也許我不明白,但這個部分讓我覺得我是正確的「這裏n爲10,但是這僅輸入1次,並且當循環從1到10時顯示該輸入值10次。「 –