为什么我的Oracle SQLPlus脚本文件不生成输出,而交互式查询生成输出?

为什么我的Oracle SQLPlus脚本文件不生成输出,而交互式查询生成输出?,oracle,sqlplus,Oracle,Sqlplus,使用Oracle sqlplus,我尝试运行如下脚本文件: sqlplus SVC_VISN_RRDW/********@usrrsit @c:\temp\SQLPlusToCSV.sql set colsep , set headsep off set pagesize 0 set trimspool on set linesize 32767 set numwidth 22 set termout off spool R:\temp\usccplan.csv SELECT CAST (UN

使用Oracle sqlplus,我尝试运行如下脚本文件:

sqlplus SVC_VISN_RRDW/********@usrrsit @c:\temp\SQLPlusToCSV.sql
set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 32767
set numwidth 22
set termout off
spool R:\temp\usccplan.csv
SELECT CAST (UNIQ_ID AS VARCHAR2 (50))           AS PlanUniqueID,
       CAST (SRC_CD AS VARCHAR2 (5))             AS PlanSourceSystem,
       CAST (PLAN_ID AS VARCHAR2 (30))           AS PlanID,
       CAST (PLAN_TYPE AS VARCHAR2 (30))         AS PlanType,
       CAST (RT_TYPE AS VARCHAR2 (10))           AS RateType,
       CAST (INDX_TYPE AS VARCHAR2 (10))         AS IndexType,
       CAST (SPRD_TO_INDX AS NUMBER (22, 7))     AS Spread,
       CAST (CUST_RT AS NUMBER (22, 7))          AS CustomerRate,
       CAST (CURR_BAL AS NUMBER (22, 2))         AS PlanCurrentBalance,
       CAST (AVG_BAL AS NUMBER (22, 2))          AS AverageBalance,
       CAST (CYC_END_BAL AS NUMBER (22, 2))      AS CycleEndBalance,
       CAST (RVLV_AMT AS NUMBER (22, 2))         AS RevolvingAmount,
       CAST (INT_INCM AS NUMBER (22, 2))         AS InterestIncome,
       CAST (ACT_CUR_PER AS NUMBER (1))          AS ActiveInLastYear,
       TO_CHAR (AS_OF_DT, 'YYYY-MM-DD')          AS AsOfDate,
       TO_CHAR (CREATE_DT, 'YYYY-MM-DD')         AS CreateDate,
       CAST (RUN_ID AS INT)                      AS RunID,
       TO_CHAR (AUDIT_DT, 'YYYY-MM-DD')          AS AuditDate
  FROM VISN_EXP.V_IHCVSN_CR_CARD_PLAN_DTL
WHERE AS_OF_DT = to_date('2019-01-04','yyyy-mm-dd')
spool off
脚本文件如下所示:

sqlplus SVC_VISN_RRDW/********@usrrsit @c:\temp\SQLPlusToCSV.sql
set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 32767
set numwidth 22
set termout off
spool R:\temp\usccplan.csv
SELECT CAST (UNIQ_ID AS VARCHAR2 (50))           AS PlanUniqueID,
       CAST (SRC_CD AS VARCHAR2 (5))             AS PlanSourceSystem,
       CAST (PLAN_ID AS VARCHAR2 (30))           AS PlanID,
       CAST (PLAN_TYPE AS VARCHAR2 (30))         AS PlanType,
       CAST (RT_TYPE AS VARCHAR2 (10))           AS RateType,
       CAST (INDX_TYPE AS VARCHAR2 (10))         AS IndexType,
       CAST (SPRD_TO_INDX AS NUMBER (22, 7))     AS Spread,
       CAST (CUST_RT AS NUMBER (22, 7))          AS CustomerRate,
       CAST (CURR_BAL AS NUMBER (22, 2))         AS PlanCurrentBalance,
       CAST (AVG_BAL AS NUMBER (22, 2))          AS AverageBalance,
       CAST (CYC_END_BAL AS NUMBER (22, 2))      AS CycleEndBalance,
       CAST (RVLV_AMT AS NUMBER (22, 2))         AS RevolvingAmount,
       CAST (INT_INCM AS NUMBER (22, 2))         AS InterestIncome,
       CAST (ACT_CUR_PER AS NUMBER (1))          AS ActiveInLastYear,
       TO_CHAR (AS_OF_DT, 'YYYY-MM-DD')          AS AsOfDate,
       TO_CHAR (CREATE_DT, 'YYYY-MM-DD')         AS CreateDate,
       CAST (RUN_ID AS INT)                      AS RunID,
       TO_CHAR (AUDIT_DT, 'YYYY-MM-DD')          AS AuditDate
  FROM VISN_EXP.V_IHCVSN_CR_CARD_PLAN_DTL
WHERE AS_OF_DT = to_date('2019-01-04','yyyy-mm-dd')
spool off
当我运行该命令时,它会在几秒钟内运行,但不会写入CSV文件:

PS R:\> sqlplus SVC_VISN_RRDW/********@usrrsit @c:\temp\SQLPlusToCSV.sql

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 21 11:23:48 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Last Successful login time: Wed Apr 21 2021 11:22:02 -04:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 22
SQL> 
但是,如果复制同一个查询并将其粘贴到同一个sqlplus会话中,它将生成输出(如果不限制它,将有数百万行):


我想我做错了什么事,但我看不出来。有人能看到我遗漏了什么吗?

脚本中的查询末尾缺少一个分号;如果您添加了它(在
spool off
命令之前的行末尾),它开始工作了吗?哈哈!完全错过了。欣赏它的第二双眼睛。如果你将此作为答案发布,我会将其标记为解决方案,你可以获得信任!