【问题标题】:sqlplus spool in a different filessqlplus 假脱机在不同的文件中
【发布时间】:2026-01-05 07:50:01
【问题描述】:

我有 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 有可能吗?如何做到这一点?

【问题讨论】:

    标签: oracle plsql sqlplus


    【解决方案1】:

    将您的 FOR 循环放在两个不同的匿名块中,然后在它们之间执行 SPOOL OFFSPOOL INV.CSV。第一个应该转到一个文件,第二个应该转到另一个。

    【讨论】:

      最近更新 更多