Bjr ,
Je voudrai avoir des détails sur comment intégrer des données XML dans un bdd oracle c#.
merci par avance.
cdlt.
Bjr ,
Je voudrai avoir des détails sur comment intégrer des données XML dans un bdd oracle c#.
merci par avance.
cdlt.
tu pourrais etre plus clair sur tes besoins là car deja j'ai peu de comprendre looool
XML c'est pas SQL... donc quel est le but ?
- insérer et stocker, dans une base Oracle, des données XML genre un noeud..., un graphe complet servant à ton programme?
- programmer Oracle avec XML ?
Ensuite c pas la BD Oracle qui est C#, mais l'applicatif que tu développe et qui utilise la BD Oracle qui est développé en C#... c'est pas pareil... faut rester clair.
Quoi qu'il en soit il est impossible de répondre à ta question sans plus de précision...
Ce que je voudrai c'est insérer et stocker les données d'un document XML (noued, graphe complet, bref un fichier xml vraiment complet ) dans une bdd Oracle en utilisant un code c#.
j'espère que c'est plus clair là
oui c'est plus clair...
deux voies s'ouvrent alors... soit tu es un gros barbare, et tu sauvegarde le xml dans une chaine puis stocke directement la chaine dans la BD,
ou tu aime la finesse, et tu "serialise" chaque noeud de ton graphe XML et tu les stocke dans la BD directement dans leur format serialisé, reste à déterminer quel type de serialisation est plus interessant... binaire, ou XML
quoi qu'il en soit, le principe n'est pas compliké
une fois que tu as déterminé koi faire et comment faire, si tu as plusieurs lignes (enregistremnt car tu à serialisé les noeuds)
tu stocke ca dans une représentation de ta table physique en mémoire grace aux objets ADO => DataTable
donc tu prend un datatable, tu détermine les différentes colonnes en travaillant avec la propriété Columns de ton datatable, et une fois le schéma défini.
tu créer chaque ligne grace à l'objet datatable qui permet de créer une ligne préparamètré avec le format de table.
et dans chaque ligne tu affecte les valeurs de colonnes si yen a plusieurs
ensuite tu créer un
OracleAdapter adapter;
auquel tu fourni une commande OracleCommand dans la propriété InsertCommand de l'adapter.
cette commande contient une instruction genre
insert into tabletrucmuche values (#p1, #p2, #p3)
si 3 paramètres par exemple
ensuite tu mappe les paramètres sur les colonne de la table
et une fois tout ce basard configuré...
adapter.update(datatable);
il s'agit bien d'un update et pas d'un fill !!!
ca c'est le cas ou ta N lignes genre ton xml etait gigantesque avec plus de 1000 noeuds, faire les milles insertions n'est pas interessant et plus lent que d'utiliser cette méthode qui va créé un lot SQL et l'exécuter, car si tu le fait manuellement en faisant :
OracleCommand cmd = new OracleCommand("INSERT INTO ('truc....', 'bidule...')", connection);
cmd.ExecuteNonQuery();
c'est plus long !!! car il faudra le répeter pour chaque ligne en changeant la requete à chaque fois.
chaque exécution se fait hors lot SQL, sans préparation de l'instruction, d'ailleurs préparer l'instruction n'aurait aucun sens dans la mesure ou elle va changer pour chaque ligne...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager