从UNIX CLI运行时,sql脚本不显示输出

时间:2014-09-02 05:33:51

标签: sql oracle

以下脚本存储在文件myscript

当我从UNIX CLI运行它作为oracle时:

$。/ myscript 1234 2345

它没有显示任何输出,但是当我在SQL提示符下单独运行命令时,它们运行正常并产生输出。

任何人都可以提供帮助,为什么UNIX CLI没有输出?

#!/bin/ksh
startDt=$1
endDt=$2
sqlplus mysqlroot/mysqlroot <<EOF >/dev/null
        SET TRIMOUT ON;
        SET FEEDBACK  OFF;
        SET PAGESIZE  0;
        SET VERIFY    OFF;
        set linesize 2300;
        set colsep |;
    select * from my_sales where saleTIME >= $startDt and saleTIME<= $endDt;
        exit;
EOF

1 个答案:

答案 0 :(得分:3)

sqlplus mysqlroot/mysqlroot <<EOF >/dev/null
    blah blah blah
EOF

您将标准输出发送到/dev/null设备,&#34;位桶&#34;一切都扔掉了。

最好用以下记录说明,其中重定向到/dev/null会导致输出不显示:

pax> echo xyzzy >/dev/null
pax> echo xyzzy
xyzzy
pax> _

如果您不想它被丢弃,只需删除该输出重定向:

sqlplus mysqlroot/mysqlroot <<EOF
    blah blah blah
EOF