Oracle SQL过程中的标识符无效

Joa*_*eno 0 oracle procedure

我收到错误(8,3):PL/SQL:忽略SQL语句和错误(8,10):PL/SQL:ORA-00904:"XMLELEMENT":以下过程中的标识符无效:

    CREATE OR REPLACE PROCEDURE GETXMLTREE
    (
      p_ESTABELECIMENTOID IN NUMBER  
    , MYXML OUT VARCHAR2  
    )
    AS
    BEGIN
    SELECT XMLELEMENT --line 8
    into MYXML
        ("root",
          (select dbms_xmlgen.getxmltype 
            (dbms_xmlgen.newcontextfromhierarchy
              ('SELECT level,
                XMLElement("item",XMLAttributes(osusr_kfa_estabele.id as "id"),
                  XMLElement("content", XMLElement("name", nomecompleto)))          
                  from osusr_kfa_estabele
                  start with osusr_kfa_estabele.id = p_ESTABELECIMENTOID 
                  connect by nocycle prior osusr_kfa_estabele.id = osusr_kfa_estabele.estabelecimetnopaiid' ))
          from dual))
    from dual;

    END GETXMLTREE;
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况的任何线索?谢谢

Ton*_*ews 6

你的INTO在错误的地方.尝试:

SELECT XMLELEMENT --line 8
        ("root",
          (select dbms_xmlgen.getxmltype 
            (dbms_xmlgen.newcontextfromhierarchy
              ('SELECT level,
                XMLElement("item",XMLAttributes(osusr_kfa_estabele.id as "id"),
                  XMLElement("content", XMLElement("name", nomecompleto)))          
                  from osusr_kfa_estabele
                  start with osusr_kfa_estabele.id = p_ESTABELECIMENTOID 
                  connect by nocycle prior osusr_kfa_estabele.id = osusr_kfa_estabele.estabelecimetnopaiid' ))
          from dual))
    into MYXML
    from dual;
Run Code Online (Sandbox Code Playgroud)