Linux 在shell脚本中存储plsql查询的输出

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

我没有得到任何输出到我的文件进行查询。当我在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 $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