[英]storing Output of plsql query in shell script
我沒有得到任何輸出到我的 FILE 以供查詢。 當我在 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
似乎將*nix
變量傳遞給SQL*Plus
是在搞亂這里的事情。
據我了解,您希望在腳本中傳遞文件名,那么最簡單的機制是直接將其定義為SPOOL
文件(而不是對其進行參數化)。
此外,您可以添加一些非常有用的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
PS -
EOF
不需要在 sqlplus 中額外exit
&select
語句必須以;
結尾;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.