如何在替换变量中给出查询结果
How to give the result of a query in a subtitution variable
sequel 来自
此 SQL 加代码有效
define a=22;
host powershell.exe echo &a;
22
但是如果 a 的值来自查询,它就不再起作用了。
define a=2;
select 22 into a;
host powershell.exe echo &a;
2 instead of 22
我已经尝试过使用缓冲区,但无济于事
variable buffer varchar2;
select 22 into :buffer from dual;
define a=b;
host powershell.exe echo &a;
:b
可以使用column .. new_value ...
syntax。如果你仍然想要一个绑定变量,就像你之前的问题一样,那么定义和填充你现在的变量,例如:
SQL> variable buffer varchar2(2);
SQL> exec :buffer := '22';
PL/SQL procedure successfully completed.
SQL> print buffer
BUFFER
--------------------------------
22
然后用一个新值定义该列,您稍后可以将其作为替换变量引用:
SQL> column a new_value a
SQL> select :buffer as a from dual;
A
--------------------------------
22
SQL> host powershell.exe echo &a
22
SQL>
如果您运行这是一个脚本并且不想看到输出,您可以set termout off
然后绕过那个额外的查询。
你可以查询任何东西,它不一定是绑定变量:
select 22 as a from dual;
或
SQL> select sysdate as a from dual;
A
---------
02-JUN-22
SQL> host powershell.exe echo &a
02-JUN-22
SQL>
sequel 来自
此 SQL 加代码有效
define a=22;
host powershell.exe echo &a;
22
但是如果 a 的值来自查询,它就不再起作用了。
define a=2;
select 22 into a;
host powershell.exe echo &a;
2 instead of 22
我已经尝试过使用缓冲区,但无济于事
variable buffer varchar2;
select 22 into :buffer from dual;
define a=b;
host powershell.exe echo &a;
:b
可以使用column .. new_value ...
syntax。如果你仍然想要一个绑定变量,就像你之前的问题一样,那么定义和填充你现在的变量,例如:
SQL> variable buffer varchar2(2);
SQL> exec :buffer := '22';
PL/SQL procedure successfully completed.
SQL> print buffer
BUFFER
--------------------------------
22
然后用一个新值定义该列,您稍后可以将其作为替换变量引用:
SQL> column a new_value a
SQL> select :buffer as a from dual;
A
--------------------------------
22
SQL> host powershell.exe echo &a
22
SQL>
如果您运行这是一个脚本并且不想看到输出,您可以set termout off
然后绕过那个额外的查询。
你可以查询任何东西,它不一定是绑定变量:
select 22 as a from dual;
或
SQL> select sysdate as a from dual;
A
---------
02-JUN-22
SQL> host powershell.exe echo &a
02-JUN-22
SQL>