You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:20:16