2013-11-22 38 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