如何在运行时从用户那里获得输入

Rav*_*ale 10 oracle user-input oracle10g

我想在oracle 10g pl/sql块中获取用户的运行时输入(即与用户进行交互式通信),是否可能?

declare
x number;
begin
x=&x;
end
Run Code Online (Sandbox Code Playgroud)

此代码在oracle 10g中提供错误,因此无法使用.

Nic*_*nov 21

要读取用户输入并将其存储在变量中以供以后使用,可以使用sqlplus命令ACCEPT.

Accept <your variable> <variable type if needed [number|char|date]> prompt 'message'
Run Code Online (Sandbox Code Playgroud)

accept x number prompt 'Please enter something: '
Run Code Online (Sandbox Code Playgroud)

然后您可以x在PL/SQL块中使用该变量,如下所示:

declare 
  a number;
begin
  a := &x;
end;
/
Run Code Online (Sandbox Code Playgroud)

使用一个刺痛的例子:

accept x char prompt 'Please enter something: '

declare 
  a varchar2(10);
begin
  a := '&x';   -- for a substitution variable of char data type 
end;           -- to be treated as a character string it needs
/              -- to be enclosed with single quotation marks
Run Code Online (Sandbox Code Playgroud)

  • 然后使你的`X`变量成为绑定变量.例如:a:=:x.按"运行"后,将显示接收数据的窗口. (3认同)