【发布时间】:2016-03-18 12:33:43
【问题描述】:
我想在 SQL*Plus 脚本中使用绑定变量值作为输入提示。这是我尝试过的:
1) 我将绑定变量定义如下
SQL>var prompt varchar2(100)
2) 并使用 PL/SQL 赋值
SQL>exec select 'your name' into :prompt from dual
3) 现在我可以按如下方式打印或选择绑定变量值:
SQL>select :prompt from dual;
:PROMPT
------------------------------------
your name
SQL>print prompt
PROMPT
------------------------------------
your name
4) 现在我想让“你的名字”显示为接受提示,但我不知道如何实现:
SQL>accept input prompt 'prompt'
prompt
SQL>accept input prompt ':prompt'
:prompt
5) 我能否将绑定值分配回替换变量,可以这样做:
SQL>define prompt = 'your name subst'
SQL>accept input prompt '&prompt.>'
your name subst>Bob
SQL>def input
DEFINE INPUT = "Bob" (CHAR)
我认为可以做到这一点的唯一方法是 SPOOLing 到 temp.sql 文件并使用 @temp.sql 运行它,但这似乎是一个可怕的 hack
【问题讨论】: