【问题标题】:Remove query from spool output in SQL Developer with variables使用变量从 SQL Developer 中的假脱机输出中删除查询
【发布时间】:2014-09-16 17:07:54
【问题描述】:

我正在尝试使用一些替换变量将结果直接假脱机到 CSV。我有这个问题:

SET echo off
set feedback off
set pagesize 0
set termout off

define startdate='12-JAN-14'
define enddate='01-JUN-14'
define vpath=C:\14-0724_Spool testing\'
define dt='60_testupdate_subvar'
define ext='.csv'

SPOOL &&vpath&&dt&&ext

SELECT /*csv*/ table1.SOURCE_DMS_ID,
  COUNT(table1. AMOUNT)
FROM table1
WHERE 
table1.DATE BETWEEN   to_date('&&startdate') and to_date('&&enddate')
--AND table1_DATE BETWEEN   '01-JAN-14' and '31-JAN-14'

GROUP BY table1_DIM.SOURCE_DMS_ID;

...被这个脚本调用:

@"\Results_Feed_Spooled.sql"

我专门用脚本调用它(并设置各种其他项目),以便生成的 CSV 文件不会在文件中包含查询。但是,选择查询确实出现在 CSV 文件中。有趣的是,当我将 where 子句切换为实际日期(请参阅查询的注释部分)而不是对替换变量的引用时,查询不会出现在生成的 CSV 中。

为什么在 WHERE 子句中使用变量而不是实际值会导致查询包含在结果文件中?我该如何纠正?我能够使用变量对脚本的有用性很重要。

(SQL 开发者版本 4.0.0.13)

谢谢!

【问题讨论】:

    标签: sql oracle csv oracle-sqldeveloper sqlplus


    【解决方案1】:

    假设 SQL_Developer 是 sqlplus 兼容的,首先,尝试添加 "SET VERIFY OFF" 。如果这不起作用,您还可以尝试将 spool 放在查询之后,如下例所示:

    set verify off
    define x = 'X'
    select * from dual where '&x' = 'X'
    
    spool x.out
    
    /
    
    spool off
    

    注意 SELECT 后的空行,以及 SELECT 语句后没有分号。

    【讨论】:

      【解决方案2】:

      使用-s。 -s 标志表示静默,完整的 bash 脚本如下所示:

      #!/bin/bash
      sqlplus -s /nolog << EOF
      CONNECT USER/PASSWORD
      set echo off
      set verify off
      set colsep ","
      set linesize 9999
      set trimout on
      set trimspool on
      set heading on
      set pagesize 0 embedded on
      set wrap off
      set feedback off
      set newpage 0
      set arraysize 5000
      set serveroutput off
      spool "/tmp/exported_date/table.csv"
      SELECT * FROM TABLE;
      spool off;
      EXIT;
      EOF
      

      【讨论】:

        猜你喜欢
        • 2013-05-19
        • 1970-01-01
        • 2016-07-28
        • 1970-01-01
        • 1970-01-01
        • 2018-09-26
        • 2021-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多