Shell-Script

如何以與我們在 Oracle SQL developer/Toad/PLSQL developer 上執行時相同的格式在 shell 腳本中獲取 SQL 查詢的結果

  • February 26, 2020

在 shell 腳本中,我使用 SQL 查詢。

#/bin/ksh
var=$(sqlplus -s <user>/<password>@DB <<EOF
     set heading on
     set trimspool off
     set linesize 200
     set feedback off
     spool out.txt;
     select col_a, col_b, col_c  from <table>;

     spool off;
     exit;
     EOF)

echo "$var" > out.txt
exit 0

然後在我在 out.txt 文件中得到如下格式的輸出後->

 col_a
 -------
 col_b
 -------
 col_c
 -------
   1
   abct
   23
 col_a
 -------
 col_b
 -------
 col_c
 -------
  2
  desf
  35
  ......

我想要像 CSV 文件一樣的輸出->

 col_a    col_b     col_c
  1        abct      23
  2        desf      35
  ....     ....      ....

您能否幫我獲得上述格式或如何將 SQL 查詢結果集轉換為 shell 腳本中的 HTML。我想獲得與在 SQL developer/Toad/PLSQL developer 上執行時相同的 SQL 查詢結果。

要像這樣輸出到 html 插入行:

SET MARKUP HTML

所以你的腳本會是這樣的

#/bin/ksh
var=$(sqlplus -s <user>/<password>@DB <<EOF
     set heading on
     set trimspool off
     set linesize 200
     set feedback off
     SET MARKUP HTML ON
     spool out.html;
     select col_a, col_b, col_c  from <table>;

     spool off;
     exit;
     EOF)

echo "$var" > out.txt
exit 0

引用自:https://unix.stackexchange.com/questions/569776