J'appelle une fonction stockée comme ceci: Les résultats de la requête sont ensuite présentés dans une table en dessous, que je peux cliquer avec le bouton droit de la souris et sélectionnez "Données d'exportation" -> XML <?xml version='1.0' encoding='UTF8' ?>
<RESULTS>
<ROW>
<COLUMN NAME="XML_INVOICE.GENERATE_XML_DOC('84200006823')" <![CDATA[<xml>yada yada</xml><morexml>...]]></COLUMN>
</ROW>
</RESULTS>
4 Réponses :
1) Insérez le résultat du SP dans une table p>
Sélectionnez xml_invoice.generate_xml_doc ('84200006823') dans Schema.Table de Dual; P>
(sera une seule rangée) p>
Utilisez EXP à exporter une table p>
EXP Nom d'utilisateur / Mot de passe @ Tables d'instance = (Nom de table) P>
J'aimerais essayer cela, mais je ne sais pas comment. Je n'ai pas besoin de créer la table d'abord? Que devrait être le schéma de la table? et quelle est l'instance? Il me semble que ceci est sur la fin du serveur, que je n'ai pas accès à. N'y a-t-il pas un moyen simple d'obtenir les résultats de cette requête? Je suppose que je pourrais écrire un programme entier pour obtenir les résultats d'une requête et l'écrire. soupir i> mais n'est-ce pas ce que le développeur SQL est pour?
Une autre solution serait d'écrire directement un fichier XML Voir l'exemple ci-dessous et ajuster à l'ajustement:
CREATE OR REPLACE PROCEDURE output_xml_file (inFileName Varchar2 ) --user defined prefix for file name AS fp UTL_FILE.FILE_TYPE; v_filename VARCHAR2(150); v_XML_Result VARCHAR2(4000); BEGIN v_filename:=infilename||'.xml'; fp := UTL_FILE.FOPEN('c:\pathtofolder', v_filename, 'W', 4000); select XML_INVOICE.GENERATE_XML_DOC(inFileName) into v_XML_Result from dual; UTL_FILE.PUT_LINE(fp, v_XML_Result); UTL_FILE.FCLOSE(fp); EXCEPTION WHEN OTHERS THEN UTL_FILE.FCLOSE(fp); raise; END output_xml_file; / SHOW ERRORS; GRANT EXECUTE ON output_xml_file TO PUBLIC;
J'apprécie votre réponse. Cependant, ce code crée un fichier sur le serveur! Les DBA ne prennent pas de bonne fin à cela, et d'ailleurs, ils n'accordent pas "Mere" Developers Accès aux fichiers de lecture sur le serveur Oracle. Donc, cela ne m'aide pas beaucoup.
exécuté sous forme de script fort> (F5) plutôt que comme une déclaration (Ctrl + Entrée) P>
La sortie passera ensuite à la fenêtre de sortie de script plutôt qu'à la sortie de la requête et vous pourrez copier et coller celui-ci P>
Merci pour votre réponse. Je suppose que cela ne me plaisait pas avec ce problème - j'ai déménagé dans un nouvel emploi depuis que cela s'est passé et que nous n'utilisons même pas l'oracle ici, alors je n'ai donc aucun moyen de tester cela! Mais vous obtenez un uppote de moi parce que cela semble raisonnable.
Cela ne fonctionne pas. J'ai le même problème pour Sélectionnez le texte à partir de All_Views où voir view_name = 'xxx' code> pour une vue complexe, je dois inverser ingénieur. La sortie avec F5 est tronquée encore pire.
J'avais le même problème dans SQL Developer 4. Voici ce qui a fonctionné pour moi: puis réexécuter la requête. Vous devriez maintenant pouvoir voir la cellule complète dans la vue de la grille et l'exporter à CSV également. P> (l'OP n'est plus avec le même travail ou en utilisant Oracle, mais cette question est l'une des premiers résultats dans Google, j'espère donc que cela aidera les personnes à avoir le même problème.) p> p>
Je supprime ma réponse depuis que vous avez confirmé que le fichier enregistré contient "...". Je ne peux pas reproduire avec un appel similaire à une fonction intégrée produisant une longue sortie. Juste pour être certain - si vous faites cela dans SQL * Plus (avec les paramètres de jeu appropriés) Avez-vous également le même résultat? De plus, à partir du nom de la fonction et de la méthode, il semble que le résultat est déjà dans XML - pourquoi avez-vous besoin de la convertir à nouveau?
Quelle est la taille du XML complet. Pouvez-vous le poster ici (afin que nous puissions insérer dans un environnement et voir si nous pouvons reproduire)
Le XML est de 70 Ko. Je ne peux pas poster le XML depuis ses données client. Dans tous les cas, le contenu réel du XML n'est pas pertinent - juste le fait que c'est tronqué.
Pouvez-vous reproduire avec un exemple plus petit et non confidentiel? Ps. Vous vous rendez compte que les données d'exportation au format XML sont là pour exporter toutes les données (dates, chiffres, chaînes, XML) dans un format XML, et non spécifiquement pour exporter des données XML?
Yup, je me rends compte que. J'ai essayé l'exportation en CSV avec le même résultat