使用UTL_FILE写入XML时遇ORA-29280无效目录对象错误求助
UTL_FILE写入XML文件时触发ORA-29280无效目录对象错误
我正在进行UTL_FILE用法的理论练习,目标是生成XML并写入文件,但运行以下代码时触发异常:
DECLARE XML_VAL01 XMLTYPE; XML_VALUE CLOB; VAR_DIRID VARCHAR(10) := '&FOLDER_NM'; VAR_DIRID_CHK NUMBER; VAR_FILEPATH VARCHAR(200); VAR_FILENAME VARCHAR(30) := '&SPL_NM'; VAR_FILEEXTS VARCHAR(4) := 'XML'; L_FILE UTL_FILE.FILE_TYPE; BEGIN -- This is my XML File -- SELECT XMLSERIALIZE(CONTENT XMLELEMENT("TestParameters", XMLELEMENT("Parameter2", V1), XMLELEMENT("Parameter3", XMLATTRIBUTES(V3 "Attr1", V4 "Attr4"), V2), XMLELEMENT("Forest1", XMLFOREST('For1' AS V5, 'For2' AS V6, XMLCDATA(V7) AS "For3")), XMLAGG(XMLELEMENT("NextNumber1", V99) ORDER BY V99) --*/ ) AS CLOB INDENT) INTO XML_VALUE FROM (SELECT 'Value1' V1, 'Value2' V2, 'Value3' V3, 'Value4' V4, 'Value5' V5, 'Value6' V6, 'Value7' V7, LEVEL V99 FROM DUAL CONNECT BY LEVEL <= 5) GROUP BY V1, V2, V3, V4, V5, V6, V7; -- Here I am validating if the Directory Exists SELECT COUNT(*) INTO VAR_DIRID_CHK FROM ALL_DIRECTORIES WHERE DIRECTORY_NAME = VAR_DIRID; IF VAR_DIRID_CHK <= 0 THEN DBMS_OUTPUT.PUT_LINE('No Directory'); DBMS_OUTPUT.PUT_LINE(XML_VALUE); ELSE -- If my directory exists, I will write the XML SELECT DIRECTORY_PATH INTO VAR_FILEPATH FROM ALL_DIRECTORIES WHERE DIRECTORY_NAME = VAR_DIRID AND OWNER = 'SYS'; L_FILE := UTL_FILE.FOPEN (VAR_FILEPATH, VAR_FILENAME || '.' || VAR_FILEEXTS, 'W'); UTL_FILE.PUT_LINE(L_FILE, XML_VALUE); UTL_FILE.FCLOSE(L_FILE); END IF; END; /
我已经通过ALL_DIRECTORIES验证了目录的存在性,但仍收到以下错误:
Error report - ORA-29280: invalid directory object ORA-06512: at "SYS.UTL_FILE", line 41 ORA-06512: at "SYS.UTL_FILE", line 478 ORA-06512: at line 36 29280. 00000 - "invalid directory object" *Cause: A corresponding directory object does not exist. *Action: Correct the directory object parameter, or create a corresponding directory object with the CREATE DIRECTORY command.
我已确认当前用户拥有该文件夹的访问权限,且目录实际存在(附目录截图),恳请协助排查解决该问题。
内容的提问来源于stack exchange,提问作者Felipe Vidal
相关产品推荐
相关产品推荐

