如何在 shell 脚本中获取与在 Oracle SQL Developer/Toad/PLSQL Developer 上运行时相同格式的 SQL 查询结果

如何在 shell 脚本中获取与在 Oracle SQL Developer/Toad/PLSQL Developer 上运行时相同格式的 SQL 查询结果

在 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
   ....     ....      ....

您能帮我得到上面的格式吗?或者我如何在 shell 脚本中将 SQL 查询结果集转换为 HTML。我希望获得与在 SQL Developer/Toad/PLSQL Developer 上运行时获得的 SQL 查询结果相同的结果。

答案1

要输出到 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

相关内容