sqlplus 假脱机在不同的文件中
Posted
技术标签:
【中文标题】sqlplus 假脱机在不同的文件中【英文标题】:sqlplus spool in a different files 【发布时间】:2014-08-01 10:30:10 【问题描述】:我有 2 个选择,我需要将其移动到 2 个不同的文件中: 示例:
SET SERVEROUTPUT ON
SET TERMOUT OFF
SET LINESIZE 4000
SET FEEDBACK OFF
SET HEADING OFF
SET TRIMSPOOL ON
SPOOL SAP.CSV
DECLARE
lRecordCount NUMBER(10) := 2;
lRecordCount2 NUMBER(10) := 2;
BEGIN
FOR t IN (SELECT distinct c.customerno line
FROM customer c
WHERE c.status = 1
and c.type = 2
and c.customerno like '2%'
and rownum <= 150)
LOOP
dbms_output.put_line(t.line);
lRecordCount := lRecordCount + 1;
END LOOP;
FOR t2 IN (SELECT distinct i.invoiceno line
FROM invoice i
WHERE i.amount > 0
and i.invoiceno is not null
and rownum <= 150
and i.invoiceno like '295%')
LOOP
dbms_output.put_line(t2.line);
lRecordCount2 := lRecordCount2 + 1;
END LOOP;
END;
/
SPOOL OFF
EXIT
我需要将“t”和“t2”的结果记录到两个不同的文件中:SAP.CSV、INV.CSV
sqlplus 有可能吗?如何做到这一点?
【问题讨论】:
【参考方案1】:将您的 FOR 循环放在两个不同的匿名块中,然后在它们之间执行 SPOOL OFF
和 SPOOL INV.CSV
。第一个应该转到一个文件,第二个应该转到另一个。
【讨论】:
以上是关于sqlplus 假脱机在不同的文件中的主要内容,如果未能解决你的问题,请参考以下文章