Welcome Guest! Log in
×

Notice

The forum is in read only mode.
Due to some maintenance operations, stambia.org will be switched to read-only mode during the 13th November. It will be possible to read and download, but impossible to post on the forums or create new accounts. For any question please contact the support team.

Topic-icon Solved DB2 - Comment charger un fichier dans une table, sans création de table temp ?

More
23 Aug 2017 10:51 #1 by Virginie_Samson
Virginie_Samson created the topic: DB2 - Comment charger un fichier dans une table, sans création de table temp ?
Bonjour
Dans un cas, nous avons les droits d'écrire dans certaines tables DB2, mais pas de créer de nouvelles tables.
Cela pose problème au mapping stambia qui cherche à créer une table temporaire de Load.

Pouvons nous activer une option qui chargerai directement le fichier dans la table cible ?

Merci d'avance
Cordialement
More
25 Aug 2017 10:10 #2 by Thomas BLETON
Thomas BLETON replied the topic: DB2 - Comment charger un fichier dans une table, sans création de table temp ?
Bonjour,

Voici quelques idées :
- Faire un process qui exécute l'utilitaire de LOAD d'IBM. A privilégier s'il y a du volume et des contraintes de perfs. Evidemment il faut que le serveur DB2 ait accès au fichier.
- Faire un process qui lit le fichier (SQL Operation) et qui insère dans la table (SQL Operation). Pratique si le fichier ne peut pas être déposé sur un disque accessible au serveur DB2.
- Le point précédent peut être mis en oeuvre de base à base, également.

A disposition pour plus d'infos.
More
04 Sep 2017 10:48 #3 by CGI_Olivier_Oddes
CGI_Olivier_Oddes replied the topic: DB2 - Comment charger un fichier dans une table, sans création de table temp ?
Bonjour,

Merci pour ce retour. En appliquant la deuxième solution, on a effectuée l’enchaînement suivant :

- SQL OPERATION de SELECT relié par un DirectBind à un SQL OPERATION d'INSERT

Malheureusement il a une anomalie au niveau de l'étape d'insert. Et je doute de la syntaxe que j'utilise :

SQL OPERATION : SELECT
select COl1,COl2,COl3 from maTable_NZ

SQL OPERATION : INSERT
INSERT INTO maTable_DB2 (COl1,COl2,COl3)
VALUES (:{COl1}:,:{COl2}:,:{COl3}:);

Est ce que la syntaxe vous parait correcte?

En vous remerciant,

Cordialement,
Olivier
More
04 Sep 2017 10:55 #4 by Thomas BLETON
Thomas BLETON replied the topic: DB2 - Comment charger un fichier dans une table, sans création de table temp ?
La syntaxe semble correcte, oui.
On oublie parfois de positionner le SQL_ACTION_TYPE à SELECT sur la source et à INSERT sur la cible, l'avez-vous bien fait ?
Quelle est l'erreur remontée sur l'action ?
More
04 Sep 2017 11:26 #5 by CGI_Olivier_Oddes
CGI_Olivier_Oddes replied the topic: DB2 - Comment charger un fichier dans une table, sans création de table temp ?
Après vérification, les paramètres SQL Action Type sont correctement valorisés

Il y a 3 erreurs au niveau de la SQL OPERATION d'INSERT. Mais au vue des codes erreurs DB2, je pense que le problème ne se situe plus vraiment du coté de Stambia :)

SqlOperation
com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=;;,
?,
?,
?,
?,
?,
?
);END-OF-STATEMENT, DRIVER=3.61.75

SqlOperation
com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-104;42601;;|,
?,
?,
?,
?,
?,
?
)|END-OF-STATEMENT, DRIVER=3.61.75

SqlOperation
java.sql.SQLException: Last row position : 1
More
04 Sep 2017 12:18 #6 by Thomas BLETON
Thomas BLETON replied the topic: DB2 - Comment charger un fichier dans une table, sans création de table temp ?
C'est peut être le point virgule à la fin de l'INSERT qui est en trop ?
Certaines bases ne l'acceptent qu'en mode "multi-query".
More
04 Sep 2017 14:00 - 21 Nov 2017 12:36 #7 by CGI_Olivier_Oddes
CGI_Olivier_Oddes replied the topic: DB2 - Comment charger un fichier dans une table, sans création de table temp ?
Nickel, effectivement c'était le point virgule qui bloquait. Merci tout fonctionne correctement maintenant :)
Last Edit: 21 Nov 2017 12:36 by Thomas BLETON.