sar*_*ego 8 unix shell sqlplus
我的要求是将sqlplus操作的结果存储到我的shell脚本中的变量中.我需要在我的.sh文件中执行以下操作的结果
sqlplus 'user/pwd' @test.sql
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了
testvar = 'sqlplus 'user/pwd'
@test.sql'
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
我改成了
testvar=sqlplus foo/bar@SCHM @test.sql
Run Code Online (Sandbox Code Playgroud)
它说
SQL*Plus:: not found [No such file or directory]
我试过了
testvar=$(sqlplus foo/bar@SCHM
@test.sql)
Run Code Online (Sandbox Code Playgroud)
它给出了同样的错误.当我尝试没有像下面的变量赋值
sqlplus foo/bar@schm @test.sql
Run Code Online (Sandbox Code Playgroud)
它工作正常
Mic*_*ent 19
试试这个:
testvar=`sqlplus -s foo/bar@SCHM <<EOF
set pages 0
set head off
set feed off
@test.sql
exit
EOF`
Run Code Online (Sandbox Code Playgroud)
-s开关将在sqlplus启动时关闭所有标题信息.你还想关闭反馈,标题和页面大小为0.我老了,所以我仍然使用后面的滴答:)
Jé *_*eue 10
使用反引号:
testvar=`sqlplus foo/bar @test.sql`
Run Code Online (Sandbox Code Playgroud)
或者应该是语法上的眼睛:
testvar=$(sqlplus foo/bar @test.sql)
Run Code Online (Sandbox Code Playgroud)
你清楚地知道采用正确的sql*plus命令来限制多余的输出,是吗?:)当然要注意反引信将折叠输出的空白.