簡體   English   中英

將 plsql 查詢的輸出存儲在 shell 腳本中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM