sqlplus spool在不同的文件中

时间:2014-08-01 10:30:10

标签: oracle plsql sqlplus

我有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 个答案:

答案 0 :(得分:0)

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