oracle中将数据导出到文本文件的存储过程

Stored procedure to export the data to text file in oracle

我写了一个存储过程如下:

CREATE OR REPLACE PROCEDURE CROSSMANUFAC IS
product          prod.product_number%TYPE;

BEGIN
DBMS_OUTPUT.enable();

delete from product;
 insert into product select unique product_number from prod p  where mynumber not in('R44','R76','R79','R20','R02',
'RY1','R71','R38','R58','RM8','RW8','R74','R73',
'R99','R72','R19','R33','RN3','R34','RP8','R22',
'R75','R01','R67','R27','R28','R57','RC5','RW7',
'RZ9','R77','R07','RW6');

commit;

DBMS_OUTPUT.put_LINE ('No of rows inserted into product  '|| SQL%ROWCOUNT);

delete from ABCD;

INSERT INTO ABCD(BATCH_LOT_ID,STAGE,DED_DATE,DATE_CODE)
(SELECT BATCH_LOT_ID,STAGE_FK,to_char(DED_DT, 'YYYYMMDD'),SUBSTR(DT_CD,3,4) FROM DED D WHERE D.product_number_FK IN
(SELECT * FROM product) and D.FLOG_TRANS_DT_FK =(sysdate -1));



commit;


DBMS_OUTPUT.put_LINE ('No of rows to be pushed to ABCD '|| SQL%ROWCOUNT);



 DBMS_OUTPUT.put_LINE ('FUNLOC           '||'  STAGE          ' || 'SEQN_NUM' );  



commit;

DBMS_OUTPUT.put_LINE ('No of rows to be pushed to ABCD  '|| SQL%ROWCOUNT);    


END CROSSMANUFAC;
/

我想修改此过程,以便将数据导出到文本文件。 如何实现此功能以及在此过程中修改的位置。 谢谢

在 table 中插入数据后添加假脱机命令,然后在过程中添加 select 命令。所以它应该看起来像:

insert into product...
commit;
spool product.txt;
select * from product;
spool off;
..
..
insert into ABCD...
commit;
spool ABCD.txt;
select * from ABCD;
spool off;
..