如何执行存储在 SQL*Plus 变量中的查询

How to execute a query stored in a variable in SQL*Plus

有什么方法可以通过变量将查询传递给 SQL*Plus 吗?

我知道 SQL*Plus 能够执行如下文件:

sqlplus user/pass@db @filename

在我尝试做的 kornshell 脚本中:

query="select * from dual;"
sqlplus user/pass@db $query

可能有解决方案,但我可以使用以下方法实现相同的目标。

[oracle@myserver Desktop]$ $ORACLE_HOME/bin/sqlplus -s jay/passsword@db <<! 
select * from dual; 
exit 
!


D
-
X

更新,可以将返回的结果存储在变量中,如下所示。

query="select * from dual;"
var=$($ORACLE_HOME/bin/sqlplus -s jay/pass@db <<!
set pages 0
set head off
set feed off
$query
!
);