PL/SQL Oracle 10g 要求用户输入(替换变量除外)
PL/SQL Oracle 10g Ask user for input (other than substitution variable)
伪代码:
declare
n number(10);
begin
dbms_output.put_line('Welcome to Oracle');
dbms_output.put_line('1. Insert');
dbms_output.put_line('2. Delete');
dbms_output.put_line('Choose an option');
n:=&choice;
if(n=1)
.....
.....
else
....
....
end if;
end;
我遇到了一个问题。当我尝试 运行 它时,它首先要求“&选择”,然后显示 dbms_output.put_line() 语句。
但我想先显示选项,然后再征求用户的意见。
样本输出(我想要的):
Welcome to Oracle
1. Insert
2. Delete
Choose an option:
Enter the value for choice:
那么解决这个问题的方法是什么?有没有其他方式从用户那里获取输入?
提前致谢。
PL/SQL 不是交互式的,因此您不能在 PL/SQL.
中执行此操作
使用 &
提示用户输入是 SQL*Plus
命令,而不是 PL/SQL
。 PL/SQL在数据库引擎内部执行,无法访问终端window或GUI工具,如SQL开发者等
话虽如此,你可以传递参数。
例如,
SQL> SET serveroutput ON
SQL> DECLARE
2 prompt_input NUMBER;
3 BEGIN
4 dbms_output.put_line('Welcome to Oracle');
5 dbms_output.put_line('1. Insert');
6 dbms_output.put_line('2. Delete');
7 dbms_output.put_line('Choose an option');
8 prompt_input := '&1';
9 IF prompt_input = 1
10 THEN
11 dbms_output.put_line('You have selected '||prompt_input||' .Insert');
12 ELSE
13 dbms_output.put_line('You have selected '||prompt_input||' . Delete');
14 END IF;
15 END;
16 /
Enter value for 1: 1
old 8: prompt_input := '&1';
new 8: prompt_input := '1';
Welcome to Oracle
1. Insert
2. Delete
Choose an option
You have selected 1 .Insert
PL/SQL procedure successfully completed.
SQL>
伪代码:
declare
n number(10);
begin
dbms_output.put_line('Welcome to Oracle');
dbms_output.put_line('1. Insert');
dbms_output.put_line('2. Delete');
dbms_output.put_line('Choose an option');
n:=&choice;
if(n=1)
.....
.....
else
....
....
end if;
end;
我遇到了一个问题。当我尝试 运行 它时,它首先要求“&选择”,然后显示 dbms_output.put_line() 语句。
但我想先显示选项,然后再征求用户的意见。
样本输出(我想要的):
Welcome to Oracle
1. Insert
2. Delete
Choose an option:
Enter the value for choice:
那么解决这个问题的方法是什么?有没有其他方式从用户那里获取输入?
提前致谢。
PL/SQL 不是交互式的,因此您不能在 PL/SQL.
中执行此操作使用 &
提示用户输入是 SQL*Plus
命令,而不是 PL/SQL
。 PL/SQL在数据库引擎内部执行,无法访问终端window或GUI工具,如SQL开发者等
话虽如此,你可以传递参数。
例如,
SQL> SET serveroutput ON
SQL> DECLARE
2 prompt_input NUMBER;
3 BEGIN
4 dbms_output.put_line('Welcome to Oracle');
5 dbms_output.put_line('1. Insert');
6 dbms_output.put_line('2. Delete');
7 dbms_output.put_line('Choose an option');
8 prompt_input := '&1';
9 IF prompt_input = 1
10 THEN
11 dbms_output.put_line('You have selected '||prompt_input||' .Insert');
12 ELSE
13 dbms_output.put_line('You have selected '||prompt_input||' . Delete');
14 END IF;
15 END;
16 /
Enter value for 1: 1
old 8: prompt_input := '&1';
new 8: prompt_input := '1';
Welcome to Oracle
1. Insert
2. Delete
Choose an option
You have selected 1 .Insert
PL/SQL procedure successfully completed.
SQL>