Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 20 January 2010 10:24

Tom_s6915
Juste Inscrit !
Date d'inscription: 20 Jan 2010
Messages: 5

Récupérer un numéro de séquence via sqlExecutor

Bonjour à tous.

Je suis nouveau sur le forum et je débute en FME.
Je travail avec l'outil FME Workbench.

je souhaite réaliser un petit traitement qui va me permettre de rajouter ou mettre à jour des données dans une base Oracle 10 à partir d'une base externe (Access pour mes tests).
L'ajout ou la mise à jour des données marche, à part pour un champ (IDENT) qui est normalement mis à jour par une séquence Oracle.

ce que je pensais faire c'est donc de récupérer le numéro de séquence via une requête dans le transformer SQLExecutor.
Dans ce transformer j'ai créée un nouvel attribut (_ident) qui doit, normalement, récupérer le numéro?

après ce transformer j'utilise un ListExploder, puis un AttributeRenamer (_ident vers IDENT).

Le problème est :
_ toutes mes lignes de la base Access se trouvent bien dans la base Oracle (ça c'est bon)
_ le champ IDENT n'est pas renseigné... (ça c'est pas bon)

en connectant un Visualizer, je ne vois pas l'attribut _ident, par contre j'ai un "MaSequence.NEXTVAL" qui lui, a bien le numéro que je veux récupérer.

Donc je ne comprends pas comment je peux récupérer le numéro de ma séquence. J'ai oublié quelque chose? Ce n'est pas la bonne méthode?

J'espère avoir été assez clair dans mes explications.

Merci d'avance pour votre aide et vos conseils.

Tom_s

ps : pour info, je me suis basé sur ça : http://www.fmepedia.com/index.php/SQLExecutor

Hors ligne

 

#2 Wed 20 January 2010 10:30

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: Récupérer un numéro de séquence via sqlExecutor

Aloha
Quelques pistes d'améliorations mais aussi quelques questions :
Pourquoi utiliser un ListExploder ?
Peut-être faut-il préférer un AttributeCopier à l'AttributeRenamer ?
Comment fonctionne votre séquence Oracle ? Est-elle lancée à chaque création/màj d'objet ? Je suppose que "MaSequence.NEXTVAL" correspond à la définition de votre séquence, ou du moins de votre requête dans SQLExecutor. Avez-vous bien indiqué de renvoyer le résultat de votre requête dans le champ _ident dans les propriétés du SQLExecutor ?
Cordialement,


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#3 Wed 20 January 2010 10:47

Tom_s6915
Juste Inscrit !
Date d'inscription: 20 Jan 2010
Messages: 5

Re: Récupérer un numéro de séquence via sqlExecutor

Merci pour votre réponse. J'ai trouvé pourquoi cela ne fonctionnait pas entre temps...
Dans ma requête, je n'avais pas mis << as \"_Ident\" >> pour mon NEXTVAL... je me doutais bien que c'était un oubli (tout bête) de ma part... et donc c'est bien une des pistes que vous avez cité ! j'aurai du mettre ma requête dans le post, cela aurait été plus simple pour vous...

Pour répondre aux questions :

Pourquoi utiliser un ListExploder ?


Il me permet d'avoir accès à mon attribut "_ident", le voir dans AttributeRenamer. sinon je n'ai pas accès au résultat de ma requête. ou alors il y a une autre méthode plus directe ?

Peut-être faut-il préférer un AttributeCopier à l'AttributeRenamer ?


Parce que je n'y ai pas pensé ;p

Encore merci et surement à bientôt wink

Cordialement,

Tom_s

Hors ligne

 

#4 Wed 20 January 2010 11:53

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Récupérer un numéro de séquence via sqlExecutor

Je vous conseille de ne pas spécifier de nom de liste dans SqlExecutor puisque votre requête ne renvoie qu'un enregistrement. Le traitement sera ensuite plus facile, ListExploder étant inutile.


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#5 Wed 20 January 2010 16:34

Tom_s6915
Juste Inscrit !
Date d'inscription: 20 Jan 2010
Messages: 5

Re: Récupérer un numéro de séquence via sqlExecutor

D'accord, merci beaucoup.

Hors ligne

 

Pied de page des forums

Powered by FluxBB