【发布时间】:2017-01-03 16:24:16
【问题描述】:
我有几个使用 UTL_FILE 将表导出到文件中的 PL/SQL 过程。
这是一个快照:
PROCEDURE export_t1
AS
l_file UTL_FILE.FILE_TYPE;
record VARCHAR2(4096);
BEGIN
l_file := UTL_FILE.FOPEN(DIRECTORY_PATH, FILENAME, 'A');
FOR j IN
(SELECT * FROM PRODUCTS WHERE HANDLE = '0')
LOOP
l_record := j.id || ',' || j.code || ',' || j.desc ....... [others fields];
UTL_FILE.PUT_LINE(l_file,l_record);
END LOOP;
UTL_FILE.FCLOSE(l_file);
UPDATE PRODUCTS SET HANDLE = '1' WHERE HANDLE = '0';
EXCEPTION
WHEN OTHERS THEN
-- log
RAISE;
END export_t1;
所以我有export_t1、export_t2、export_tn 程序。此外,我在一个“主”过程中依次调用它们..
我的问题是..如果我在 export_t2 中有异常,这是第二个 程序,如何阻止第一个(export_t1)创建文件
想法是..在所有程序都正常时创建文件,没有例外
【问题讨论】:
标签: oracle plsql export procedure