2017-10-11 7 views
0
**create or replace procedure Xml_Table is 
begin 
    DECLARE 
l_xmltype XMLTYPE; 
BEGIN 

SELECT XMLELEMENT("employees", 
      XMLAGG(
      XMLELEMENT("employee", 
       XMLFOREST(
       e.empno AS "empno", 
       e.ename AS "ename", 
       e.job AS "job", 
       TO_CHAR(e.hiredate, 'DD-MON-YYYY') AS "hiredate" 
       ) 
      ) 
      ) 
     ) 
    INTO l_xmltype 
    FROM emp e; 
    INSERT INTO xml_tab VALUES (1, l_xmltype); 
    COMMIT; 
end Xml_Table;** 

Dans ce Xml_Table est la procédure que j'ai créée. et Xml_tab est la table de type de données xml que j'ai créée dans la base de données. Une autre question est la façon dont je peux créer une procédure pl/sql dans laquelle je peux déposer et créer une nouvelle table de type xml au lieu de le faire en dehors de la procédure.Lorsque j'exécute le code suivant dans le développeur pl/sql, une erreur se produit?

MESSAGE ERREUR: erreurs de compilation pour la procédure APPS.XML_TABLE

Erreur: PLS-00103: Rencontrés le symbole "fin de fichier" si vous attendez une des opérations suivantes:

 (begin case declare end exception exit for goto if loop mod 
     null pragma raise return select update while with 
     <an identifier> <a double-quoted delimited-identifier> 
     <a bind variable> << continue close current delete fetch lock 
     insert open rollback savepoint set sql execute commit forall 
     merge pipe purge 
+0

Supprimer les deux lignes 1 et 2 et cela devrait fonctionner. –

Répondre

0
Try this: 
create or replace procedure Xml_Table as 
/* 
begin --> REMOVE 
DECLARE --> REMOVE 
*/ 
l_xmltype XMLTYPE; 
BEGIN 
... 
+0

Merci beaucoup cela a fonctionné. Est-il possible d'inclure CREATE AND DROP le tableau XML dans la procédure. –

+0

Vous pouvez utiliser EXECUTE IMMEDIATE: exécuter immédiatement 'drop table mytable'; exécuter immédiatement 'create table mytable (colonne 1 entier, etc etc)' ;. Veuillez voter et/ou accepter la réponse. – Yellow75