Linux 在shell脚本中存储plsql查询的输出
我没有得到任何输出到我的文件进行查询。当我在oracle中运行时,我可以看到计数。 有人能告诉我我做错了什么吗Linux 在shell脚本中存储plsql查询的输出,linux,shell,sqlplus,Linux,Shell,Sqlplus,我没有得到任何输出到我的文件进行查询。当我在oracle中运行时,我可以看到计数。 有人能告诉我我做错了什么吗 #!/bin/bash ORACLE_HOME=*path* TNS_ADMIN=*path* export ORACLE_HOME export TNS_ADMIN FILE="/tmp/score_cnt.txt" sqlplus -S user/pass@service<< EOF spool $FIL
#!/bin/bash
ORACLE_HOME=*path*
TNS_ADMIN=*path*
export ORACLE_HOME
export TNS_ADMIN
FILE="/tmp/score_cnt.txt"
sqlplus -S user/pass@service<< EOF
spool $FILE
select count(*) from score_tbl
spool off
exit;
EOF
#/bin/bash
ORACLE_HOME=*路径*
TNS_ADMIN=*路径*
导出甲骨文主页
导出TNS_管理
FILE=“/tmp/score\u cnt.txt”
sqlplus-S用户/pass@service似乎将*nix
变量传递给SQL*Plus
会把这里的事情弄得一团糟
据我所知,您希望在脚本中传递文件名,那么最简单的机制是直接将其定义为SPOOL
file(而不是将其参数化)
此外,您还可以添加一些非常有用的SET
参数来美化输出
sqlplus -S user/pass@service << EOF
SET LINESIZE 32000
SET PAGESIZE 0
SET TRIMSPOOL ON
SET TRIMOUT ON
SET WRAP OFF
SET TERMOUT OFF
spool /tmp/score_cnt.txt
select count(*) from score_tbl;
spool off
EOF
sqlplus-S用户/pass@service