为什么我的Oracle SQLPlus脚本文件不生成输出,而交互式查询生成输出?
使用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
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
命令之前的行末尾),它开始工作了吗?哈哈!完全错过了。欣赏它的第二双眼睛。如果你将此作为答案发布,我会将其标记为解决方案,你可以获得信任!