|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 15 ![]() |
Bonjour,
Je travaille actuellement sur l'alimentation XML d'une base Oracle 10gR2 en passant par un package java. Mais pour cela ,j 'ai plusieurs souci : - en raison de mes dba je ne peux pas utiliser l'instruction en ligne de commande loadjava et dropjava. Donc comment compiler et charger dans la base une classe java sans cela ? - j'ai finalement réussit à les charger en base , comment construire le package qui va me permettre d'appeller ma classe java dans un stock proc oracle ? - Et enfin si quelqun à des liens pour expliquer les différentes maniéres de gérer l'import de données XML dans Oracle, ca m'intérresse. par avance merci à ceux qui répondront et à ceux qui auront pris le temps de lire ce pavé ![]() Mon code java : Citation:
|
|
|
|
00
|
|
|
#2 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
![]() T'as réussi ou pas alors... parce que juste après tu dis : "j'ai finalement réussit à les charger en base"... il me semblait que seul loadjava permettait de le faire
|
|
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 15 ![]() |
Citation:
Il me faut donc une autre méthode , je regarde sur le net apparement y a un truc dans DBMS_JAVA une méthode loadjava mais c'est obscur. |
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
apparemment ça marche de la même manière que le client loadjava : http://download.oracle.com/docs/cd/B...htm#ABC2124788
Mais faudrait quand même savoir ce qui gêne à ce point les DBA pour essayer de trouver la meilleure alternative... |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 15 ![]() |
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
bah déjà, je m'étonne que tu sois obligé de passer par une procédure java simplement pour gérer du XML alors qu'Oracle gère le XML de manière native
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 15 ![]() |
Oui moi aussi mais toute les propositions autres ont été rejetées car jugées non performantes.
Je vais donc expliquer la maniére selon laquelle nos DBA jugent qu'un import XML dans Oracle doit se faire. XML -> Procédure Java -> nested table -> Fichier Plat -> Data pump -> Table d'import finale. En gros , chargment du fichier XML (100 méga) par la procédure Oracle dans des tables liées puis export dans un fichier plat pour un réimport par le driver data pump d'Oracle dans la structure finale. Impossible de faire plus performant selon eux |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Ca me parait beaucoup moins compliqué que ça : http://download.oracle.com/docs/cd/B....htm#sthref561
Tu importes dans une colonne CLOB et tu charges ta table en parsant le XML http://asktom.oracle.com/pls/asktom/...:2853285548502 En espérant que ça t'aidera C'est peut-être même plus simple avec SQL*Loader : http://download.oracle.com/docs/cd/B....htm#sthref678 |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 15 ![]() |
Bon juste pour info et pour tous ceux qui chercherait.
Méthode pour impoerter une classe java , la compiler et l 'éxécuter : 1) Charger la classe java dans Oracle: CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "Nom_de_la_Source" AS public class Nom_de_la_classe { /** code java **/ } 2) Procédure d'appel de la classe java CREATE OR REPLACE PROCEDURE Nom_de_la_Proc (/*paramétres*/) AS LANGUAGE JAVA NAME 'Nom_de_la_source.Nom_de_la_classe(/*paramétres*/)'; 3) lancement de la proc SET SERVEROUTPUT ON SIZE 1000000 CALL DBMS_JAVA.SET_OUTPUT(1000000); BEGIN Nom_de_la_Proc (/*paramétre*/ => /*valeur du paramétre*/); END; En espérant que ça aide ceux qui cherche un peu d'aide la dessus. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com