Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Sunopsis
Sunopsis Forum d'entraide Sunopsis
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2011, 17h24   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 7
Points : 0
Points : 0
Par défaut [ODI][XML] Balises manquantes si valeur = null

Bonjour,

Je souhaite écrire un fichier XML à partir d'une source ORACLE. Cela fonctionne sauf pour une particularité. En effet, si un de mes champs est à null, ODI ne va pas créer un éléments vide du style <element/> mais ne pas l'ajouter du tout.

J'ai parcouru de nombreux forum et plusieurs fois la documentation de ODI et malheureusement je ne trouve pas de solution.

Avez vous déjà rencontré ce problème ?

Merci d'avance
OxyNoNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 10h13   #2
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
Bonjour,

J'ai eu le même problème que toi,
après quelque test j'ai trouver une solution :
dans les champs ou tu veux que le JDBC te génère une balise vide met ' '
et dans les option du JDBC tu met nct=true afin d'avoir <element/> plutôt que
<element> </element>

PS : j'avais essayé en mettant '' mais rien...
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 10h24   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 7
Points : 0
Points : 0
Citation:
Envoyé par kisskool45 Voir le message
Bonjour,

J'ai eu le même problème que toi,
après quelque test j'ai trouver une solution :
dans les champs ou tu veux que le JDBC te génère une balise vide met ' '
et dans les option du JDBC tu met nct=true afin d'avoir <element/> plutôt que
<element> </element>

PS : j'avais essayé en mettant '' mais rien...
Bonjour,

Merci pour ta réponse ! Cela m'étonne que le driver prenne un espace comme étant une balise vide. J'avais également tenté avec '' mais Oracle interprète cela comme NULL également ...
je teste ta solution et reviens poster le résultat.
OxyNoNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 10h51   #4
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 7
Points : 0
Points : 0
Malheureusement il me génère quelque chose du style :
<UserFirstName> </UserFirstName> Et cela malgré le paramètre nct=true
Tu as fait une étape de plus ?
OxyNoNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 11h12   #5
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
j'utilise la commande CREATE FILE pour générer mes fichiers XML
j'ai rajouté l'option NO_CLOSING_TAGS

Code :
CREATE FILE "myfile.xml" NO_CLOSING_TAGS
(J'ai mon propre IKM)
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 12h00   #6
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 7
Points : 0
Points : 0
J'avais ajouté l'option sur ma topologie sur le jdbc de mon drivers.
J'ai voulu le faire à ta façon lors de l'appel à CREATE FILE mais lorsque j'ajoute le paramètre N0_CLOSING_TAGS j'ai une exception de générer :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
java.lang.NullPointerException
	at com.sunopsis.jdbc.driver.xml.bq.executeUpdate(bq.java:621)
	at com.sunopsis.jdbc.driver.xml.br.executeUpdate(br.java:112)
	at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java)
	at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders(SnpSessTaskSql.java)
	at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
	at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
	at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
	at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
	at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
	at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
	at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
	at com.sunopsis.dwg.cmd.e.i(e.java)
	at com.sunopsis.dwg.cmd.h.y(h.java)
	at com.sunopsis.dwg.cmd.e.run(e.java)
	at java.lang.Thread.run(Thread.java:595)
OxyNoNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 13h54   #7
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
Je n'ai jamais eu cet erreur la...

J'ai tester sans l'option du JDBC ntc et avec le NO_CLOSING_TAGS et ca a fonctionner

Tu peux me donner le code de la ligne qui plante?
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 14h04   #8
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 7
Points : 0
Points : 0
J'ai vraiment juste ajouté à ma ligne le NO_CLOSING_TAGS
CREATE FILE "XMLFILENAME.xml" FROM SCHEMA My_SCHEMA NO_CLOSING_TAG

Sans ce paramètre cela fonctionne mais avec j'ai le problème de null pointer exception et aucune informations supplémentaires que la stacktrace que j'ai posté plus haut
OxyNoNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 14h09   #9
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
ok je vois
la syntaxe exacte de la commande est
Code :
CREATE [EMPTY] FILE <file_name> [FROM SCHEMA <schema_name>] [ROOTTABLE <table_name>] [JAVA_ENCODING <java_encoding> XML_ENCODING <xml_encoding>] [NO_CLOSING_TAGS] [NO_DEFAULT_NS]
manque le nom du schema ^^


Toutes les commandes du JDBC XML d'ODI :
http://download.oracle.com/docs/cd/E...r_commands.htm
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 14h11   #10
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
Oopps escuse moi je n'avais pas vu le My_schema

tu as essayer sans le FROM SCHEMA My_schema?
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 14h14   #11
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
le S à NO_CLOSING_TAGS ?
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 14h15   #12
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 7
Points : 0
Points : 0
Je n'ai pas tenté sans le FROM SCHEMA mais quand j'utilise la ligne

CREATE FILE "XMLFILENAME.xml" FROM SCHEMA My_SCHEMA

Cela fonctionne sans problème. c'est vraiment juste l'ajout du paramètre NO_CLOSING_TAGS qui m'a fait planter le tout.
OxyNoNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h09   #13
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 7
Points : 0
Points : 0
J'avais un souci de guillements. Par contre j'ai désormais une exception de type SQL : Closed Connection. Mais je pense pas que cela soit lié, je débloque ça et lorsque c'est bon je retente ta technique
OxyNoNo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 09h27   #14
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
Apres si ca ne fonctionne pas c'est que tu n'a pas la même version du driver que moi.
Je travaille sur ODI 11g, c'est peut être une explication.
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h30.


 
 
 
 
Partenaires

Hébergement Web