2013-11-22 36 views
0

我需要导出结果以XML格式的结果,这里下面是代码:以XML格式导出sql语句

DECLARE 
     XmlFic Utl_File.File_Type; 
     XmlData CLOB; 
     Fin  BOOLEAN := TRUE; 
    BEGIN 
     XmlData := DBMS_XMLQuery.GetXML ('SELECT * FROM employees'); 
     XmlFic := Utl_File.FOpen ('C:\TMP\XML', 'TEST.xml', 'W'); 
     WHILE FIN LOOP 
      Utl_File.Put (XmlFic, SUBSTR (XmlData, 1, 32767)); 
      IF LENGTH (XmlData) > 32767 THEN 
      XmlData := SUBSTR (XmlData, 32768); 
      ELSE 
      FIN := FALSE; 
      END IF; 
     END LOOP; 
     Utl_File.FClose (XmlFic); 
    EXCEPTION 
     WHEN OTHERS THEN 
      DBMS_OUTPUT.PUT_LINE (SUBSTR (SQLERRM,1,255)); 
      Utl_File.FClose (XmlFic); 
    END; 

我收到以下错误:

ORA-06550 :第2行,第11列: PLS-00201:标识符 'UTL_FILE' 必须被声明 PLS-00201:标识符 'DBMS_XMLQUERY.GETXML' 必须被声明

有没有人有一个想法,我在做什么错了? 任何帮助将不胜感激

回答

0

它会工作,如果您使用SYS.DBMS_XMLQUERY而不是只有DBMS_XMLQUERY?如果有效,则不会创建同义词(或者甚至删除原件)。

来源:https://forums.oracle.com/thread/2237396