Plsql 在捕获异常时是否必须像在其他编程语言中一样使用UTL_FILE.FCLOSE?
在捕获异常时是否必须像在其他编程语言中一样使用UTL_FILE.FCLOSE 我正在使用Oracle 11gR2: 示例代码:Plsql 在捕获异常时是否必须像在其他编程语言中一样使用UTL_FILE.FCLOSE?,plsql,oracle11g,Plsql,Oracle11g,在捕获异常时是否必须像在其他编程语言中一样使用UTL_FILE.FCLOSE 我正在使用Oracle 11gR2: 示例代码: DECLARE V1 VARCHAR2(32767) := 'This is a test'; F1 UTL_FILE.FILE_TYPE; BEGIN F1 := UTL_FILE.FOPEN('MYDIR','MYFILE','w',256); UTL_FILE.PUT_LINE_NCHAR(F1,V1); UTL_FILE.FCLO
DECLARE
V1 VARCHAR2(32767) := 'This is a test';
F1 UTL_FILE.FILE_TYPE;
BEGIN
F1 := UTL_FILE.FOPEN('MYDIR','MYFILE','w',256);
UTL_FILE.PUT_LINE_NCHAR(F1,V1);
UTL_FILE.FCLOSE(F1);
EXCEPTION
WHEN OTHERS THEN
IF UTL_FILE.IS_OPEN(F1) THEN
UTL_FILE.FCLOSE(F1);
END IF;
END;
您可以在异常中使用
FCLOSE\u ALL
。这将确保在引发异常时,作为会话一部分的所有打开的文件句柄都会关闭。输入异常块不会自动关闭文件,因此,是的,您需要这样做。这是一个问题吗?我只是问了一个问题,因为在许多网站/教程中,作者忘记了关闭处理程序。当你将此作为答复发布时,我将予以批准。