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

GEODATA DAYS 2024

#1 Thu 05 August 2010 14:20

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

[SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Bonjour,

j'ai un job avec deux composants msgbox. Les variables contenant les résultats s'appellent respectivement: tMsgBox_1_RESULT et tMsgBox_2_RESULT

dans les paramètres du composant tELTOracleOutput, pour le champ "Clauses WHERE",

je cherche à donner les critères suivants:

WHERE

mot_cle LIKE ((String)globalMap.get("tMsgBox_1_RESULT"))

AND

mot_cle_com LIKE ((String)globalMap.get("tMsgBox_2_RESULT"))
;


Alors que j'écris mes critères de la manière suivante:

"where
mot_cle like '((String)globalMap.get("tMsgBox_1_RESULT"))'
and
mot_cle_com like '((String)globalMap.get("tMsgBox_2_RESULT"))'
;"

Il me retourne l'erreur suivante:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    String literal is not properly closed by a double-quote

    at demo_oracle.msgbox_0_1.msgbox.tELTOracleMap_1Process(msgbox.java:681)
    at demo_oracle.msgbox_0_1.msgbox.tMsgBox_1Process(msgbox.java:549)
    at demo_oracle.msgbox_0_1.msgbox.tOracleConnection_1Process(msgbox.java:311)
    at demo_oracle.msgbox_0_1.msgbox.runJobInTOS(msgbox.java:914)
    at demo_oracle.msgbox_0_1.msgbox.main(msgbox.java:808)


J'ai essayé de réécrire ma clause de diverses manières. Aucun effet.

Comment écrire correctement la clause where pour le composant tELTOracleOutput?

Merci

Cdlt

Luc


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Thu 05 August 2010 14:48

mcoudert
Participant actif
Lieu: Toulouse
Date d'inscription: 16 Oct 2006
Messages: 83

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Bonjour,

Vous devriez essayer avec cette syntaxe :

Code:

"where mot_cle like '"+  ((String)globalMap.get("tMsgBox_1_RESULT")) +"' and mot_cle_com like '"+ ((String)globalMap.get("tMsgBox_2_RESULT")) +"';"

A voir s'il ne faut pas echapper les simples quotes..

Mathieu

Hors ligne

 

#3 Thu 05 August 2010 14:49

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9860
Site web

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Bonjour,

C'est normal le parser comprend ta requête comme ceci :
du texte : "where mot_cle like '((String)globalMap.get("
puis une variable tMsgBox_1_RESULT
puis du texte "))' and mot_cle_com like '((String)globalMap.get("
puis une variable tMsgBox_2_RESULT
puis du texte : "))';"

D'où l'erreur car pour concaténer deux string il faut utiliser le symbol "+" d'autre part si tu veux utiliser une variable dans ta requête, il faut d'abord sortir de ta chaine puis concaténer ta variable :

Code:

"where
mot_cle like '"+((String)globalMap.get("tMsgBox_1_RESULT"))+"'
and
mot_cle_com like '"+((String)globalMap.get("tMsgBox_2_RESULT"))+"'
;"

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#4 Thu 05 August 2010 17:17

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Merci,

la clause s'écrit correctement à présent.

A l'exécution du job, dans les commentaires d'éxécution (onglet "exécuter"), la requête s'écrit alors normalement [1] avec les valeurs attribuées aux variables. Les valeurs de variables sont bien transmises dans une bonne syntaxe. Merci.

Auparavant, dans la chaîne, j'utilise un composant tELTOracleMap car c'est obligatoire. Celui-ci fait une requête SELECT qui s'incorpore à la requête DELETE. Cela est sans incidence puisque en exécutant la requête dans sqltools ou Toad, celle-ci marche normalement :

[1]:
DELETE  FROM (SELECT metadonnees.MSLINK , metadonnees.INTITULE_DONNEE , metadonnees.RESUME , metadonnees.TIP , metadonnees.RESSOURCE_COUPLEE , metadonnees.LANGUE_DONNEE , metadonnees.CATEG_ISO , metadonnees.MOT_CLE , metadonnees.VOC_CONTROLE_ORIGINE , metadonnees.X_MIN , metadonnees.X_MAX , metadonnees.Y_MAX , metadonnees.Y_MIN , metadonnees.ETENDUE_TEMPORELLE , metadonnees.PUBLICATION , metadonnees.DER_REVISION , metadonnees.CREATION , metadonnees.GENEALOGIE , metadonnees.RESOLUTION_SPATIALE , metadonnees.SPECIFICATION , metadonnees.DEGRE_CONFORMITE , metadonnees.ACCES_UTILISATION , metadonnees.RESTRICTIONS_PUBLIC , metadonnees.PARTIE_RESPONSABLE , metadonnees.ROLE_RESPONSABLE , metadonnees.POINT_CONTACT_MD , metadonnees.DATE_MD , metadonnees.LANGUE_MD , metadonnees.CODE_INSEE , metadonnees.CATEG_INSPIRE , metadonnees.P_RESP_ADRESS , metadonnees.P_RESP_VILLE , metadonnees.P_RESP_CP , metadonnees.P_RESP_PAYS , metadonnees.P_RESP_MAIL , metadonnees.PT_CONTACT_ADRESS , metadonnees.PT_CONTACT_VILLE , metadonnees.PT_CONTACT_CP , metadonnees.PT_CONTACT_PAYS , metadonnees.PT_CONTACT_MAIL , metadonnees.VOC_DATE , metadonnees.SPECIFICATION_DATE , metadonnees.SYSTEME_REFERENCE , metadonnees.MOT_CLE_COM , metadonnees.MOT_CLE_2 , metadonnees.MOT_CLE_SYN , metadonnees.LOCALISATEUR_DONNEE , metadonnees.AGENCE , metadonnees.CHEMIN_PHYSIQUE , metadonnees.SEQUENCE  FROM  metadonnees) METADONNEES  WHERE mot_cle like 'eau pluviale' and mot_cle_com like 'TORCY';



Cependant, à l'éxécution du job dans TOS, la requête delete ne s'éxécute pas à cause d'une erreur

ORA-09111: caractère non-valide!

Exception in component tELTOracleOutput_1
java.sql.SQLException: ORA-00911: caractère non valide

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:966)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3423)
    at demo_oracle.msgbox_0_1.msgbox.tELTOracleMap_2Process(msgbox.java:357)
    at demo_oracle.msgbox_0_1.msgbox.tMsgBox_1Process(msgbox.java:716)
    at demo_oracle.msgbox_0_1.msgbox.tOracleConnection_1Process(msgbox.java:813)

[statistics] disconnected
    at demo_oracle.msgbox_0_1.msgbox.runJobInTOS(msgbox.java:971)
    at demo_oracle.msgbox_0_1.msgbox.main(msgbox.java:865)


Qu'est-ce qui ne plaît pas à TOS dans cette requête? J'aimerai bien esquiver le SELECT mais il semble impossible d'utiliser le composant tELTOracleOutput sans tELTOralceMap...

Merci

Luc

Dernière modification par lucclementSTR (Thu 05 August 2010 17:18)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#5 Fri 06 August 2010 09:26

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9860
Site web

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Luc,

Peux tu montrer la requête que tu as mise dans le component tELTOracleOutput avec une capture d'écran ?

Merci,

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#6 Fri 06 August 2010 09:41

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Bonjour,

merci Yves pour ton suivi.

Voici la capture.

Luc

Dernière modification par lucclementSTR (Fri 06 August 2010 09:42)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#7 Fri 06 August 2010 09:59

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Je viens de trouver le problème!

Le point virgule à la fin de la clause WHERE était la cause. Je l'ai supprimé et cela fonctionne!

Voici la clause dans le composant tELTOracleOutput:

Code:

"mot_cle like '"+  ((String)globalMap.get("tMsgBox_1_RESULT")) +"' and mot_cle_com like '"+ ((String)globalMap.get("tMsgBox_2_RESULT")) +"'"

Je recherche désormais à écrire une variante de cette requête dans la clause Where:

Code:

where data like %[i]variable1[/i]% and data like %[i]variable2[/i]% (avec les mêmes variables que précédemment).

Si j'ai bien suivi ton explication Yves, est-ce que cela s'écrit de la manière suivante:

Code:

" where data like '[b]%[/b]"+  ((String)globalMap.get("tMsgBox_1_RESULT")) +"[b]%[/b]' and data like '[b]%[/b]"+ ((String)globalMap.get("tMsgBox_2_RESULT")) +"[b]%[/b]'"

Je vais tester ceci.

Merci.

Luc

Hors ligne

 

#8 Fri 06 August 2010 10:25

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9860
Site web

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

lucclementSTR a écrit:

Si j'ai bien suivi ton explication Yves, est-ce que cela s'écrit de la manière suivante:

Code:

" where data like '[b]%[/b]"+  ((String)globalMap.get("tMsgBox_1_RESULT")) +"[b]%[/b]' and data like '[b]%[/b]"+ ((String)globalMap.get("tMsgBox_2_RESULT")) +"[b]%[/b]'"


Au BBCode près, oui smile

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#9 Fri 06 August 2010 11:30

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Pardon pour les tags mal utilisés!

Le problème est que cette requête DELETE porte sur un champ de type LONG de la table METADATA.


Ma clause where écrite ci-dessus (sans les tags georezo!) est valide puisque la requête dans les commentaires de l'exécution s'écrit correctement:

Deleting with :
DELETE  FROM (SELECT METADATA.ID , METADATA.UUID , METADATA.SCHEMAID , METADATA.ISTEMPLATE , METADATA.ISHARVESTED , METADATA.CREATEDATE , METADATA.CHANGEDATE , METADATA.DATA , METADATA.SOURCE , METADATA.TITLE , METADATA.ROOT , METADATA.HARVESTUUID , METADATA.OWNER , METADATA.GROUPOWNER , METADATA.HARVESTURI , METADATA.RATING , METADATA.POPULARITY , METADATA.DISPLAYORDER  FROM  METADATA) METADATA  WHERE data like '%eau pluviale%' and data like '%TORCY%'


Malheureusement, il persiste un problème de type de champ.

Dans le schéma de ma table, le schéma de tELTOracleInput, celui de tELTOracleMap et celui de tELTOracleOutput, le champ DATA est bien de type LONG.

Pourtant, à l'éxécution du job:

Exception in component tELTOracleOutput_1
java.sql.SQLException: ORA-00932: types de données incohérents ; attendu : NUMBER ; obtenu : LONG

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:966)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3423)
    at demo_oracle.gg_0_1.gg.tELTOracleMap_2Process(gg.java:355)
    at demo_oracle.gg_0_1.gg.tMsgBox_1Process(gg.java:713)
    at demo_oracle.gg_0_1.gg.tOracleConnection_1Process(gg.java:810)
[statistics] disconnected
    at demo_oracle.gg_0_1.gg.runJobInTOS(gg.java:967)
    at demo_oracle.gg_0_1.gg.main(gg.java:862)


Je voie d'où provient l'erreur: du schéma du composant tOracle.

Dans les paramètres du composant, en mode "référentiel", rien de visible. Le job provoque l'erreur précédente.
Par contre, en mode "intégré", la "synchronisation des colonnes" provoque un basculement du type du champ DATA de LONG en NUMBER!!. De même, à l'édition du schéma dans les paramètres du composant (bouton "..."), si je fais "initialise les types DB" dans la fenêtre "output", le champ DATA repasse en type NUMBER.
Je le refais alors basculer manuellement en type LONG, mais à l'éxécution toujours le même problème.

Pourquoi cette persistence à mettre le type NUMBER?
Je sais que la manipulation du type LONG n'est pas permise par toutes les clauses. Mais pourquoi ce basculement?

De même dans SQLTools à l'exécution de la requête:

Code:

ORA-00932: types de données incohérents ; attendu : NUMBER ; obtenu : LONG

Merci

Luc

Dernière modification par lucclementSTR (Fri 06 August 2010 11:35)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#10 Fri 06 August 2010 12:05

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Maudit type long!
Même si je ne comprend pas la fixette sur le type NUMBER, il est impossible que la requête s'exécute puisque un champ de type LONG ne peut pas être compris dans une clause Where!

Peut-être que cette erreur en est la conséquence mais c'est pas transparent.

Hors ligne

 

#11 Fri 06 August 2010 14:48

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Bonjour,

changement de stratégie pour supprimer un enregistrement de la table metadata.

Cette table a un champ UUID (de type string) contenant une chaîne de caractères (chiffres et lettres), celle-ci terminant par l'ID de l'enregistrement correspondant de la table metadonnees (champ identifiant appelé "MSLINK" pour éviter les confusions).

Par exemple:

l'enregistrement de la table metadonnees dont:
metadonnees.id (integer) = 4141

correspond à l'enregistrement de la table metadata dont:
metadata.uuid = 'ad8b1231-c006-4870-8530-770cd6184141 (l'attribut est tjs de ce format là)

Ainsi, j'aimerai traduire cela dans un composant tmap.

Le but du job est de supprimer un enregistrement de la table metadata à partir d'un critère sur son champ uuid.

J'ai d'abord un composant tOracleInput où je fais un select de l'attribut metadonnees.ID à partir de critères sur les champs mot_cle et mot_cle_com de la table metadonnees:

Code:

"SELECT GEOSOURCE.METADONNEES.MSLINK
FROM    GEOSOURCE.METADONNEES

WHERE GEOSOURCE.METADONNEES.mot_cle like '"+  
((String)globalMap.get("tMsgBox_1_RESULT")) +"' 
and   GEOSOURCE.METADONNEES.mot_cle_com like '"+ ((String)globalMap.get("tMsgBox_2_RESULT")) +"'
"

Jusque ici tout fonctionne.

Ensuite j'ajoute un composant tmap en cherchant à faire une jointure entre le champ MSLINK du côté en input, et le champ UUID du schéma de la table metadata en output.

Le champ MSLINK est de type integer et il faut le convertir en string, et ajouter un caractère comme % (SQL-2) spécifiant que toute chaine de caractère peut être concaténé à gauche.

Je l'écris mal ainsi: % + DataOperation.CHAR(row2.MSLINK) .

Puis je lie tMap à un composant tOracleOutput qui fait une action "supprimer" sur les données.

La difficulté se trouve sur le composant tMap pour faire la jointure correctement avec la concaténation de tout type de caractères au champ MSLINK et éventuellement la transformation du MSLINK en chaîne:

Code:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Syntax error on token "%", delete this token
    Type mismatch: cannot convert from int to String

    at demo_oracle.gg_0_1.gg.tOracleInput_1Process(gg.java:1525)
    at demo_oracle.gg_0_1.gg.tMsgBox_1Process(gg.java:439)
    at demo_oracle.gg_0_1.gg.runJobInTOS(gg.java:1921)
    at demo_oracle.gg_0_1.gg.main(gg.java:1816)

Je ne sais pas si je m'y prend bien dans la conception du job et le choix des composants...

Toutefois, comment écririez-vous cette jointure?

Merci.

Luc Clément

Dernière modification par lucclementSTR (Fri 06 August 2010 14:53)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#12 Fri 06 August 2010 14:56

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9860
Site web

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

La capture d'écran n'est pas une jointure wink

je traiterai le champ "ad8b1231-c006-4870-8530-770cd6184141" pour ne récupérer que la fin et le placer dans un nouveau champ. Est ce que la longueur est toujours la même ? Est ce que la longueur du champ "84141" peut être calculé et utilisé pour prendre la fin du premier champ ?

La jointure se ferait entre 84141 et le nouveau champ créé précédemment, en sortie tu utilises le champ uuid.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#13 Fri 06 August 2010 15:13

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Oui, le champ uuid est toujours de la même longueur 8-4-4-4-12 soit 36 caractères.

En revanche, le champ "4141" est de longueur variable. Il peut prendre les 4, les 5, ...,les 12 derniers caractères du champ uuid. Mais avec 6000 enregistrement d'avance, on peut partir du principe que le champ "4141" ("MSLINK") comporte 4 chiffres.

Mais il y aura toujours le même problème de type de champ entre les 4 caractères du champ UUID qui sont un extrait de chaîne et le champ 4141 un entier.

J'essaie déjà de mettre en pratique ce que tu me dis pour te remontrer une (vraie) jointure j'espère.

Cdlt

Luc

Dernière modification par lucclementSTR (Fri 06 August 2010 15:24)

Hors ligne

 

#14 Fri 06 August 2010 15:31

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9860
Site web

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

lucclementSTR a écrit:

Mais il y aura toujours le même problème de type de champ entre les 4 caractères du champ UUID qui sont un extrait de chaîne et le champ 4141 un entier.


Je par du principe que tu as deux champs X et Y avec :
id= 8-4-4-12  et uuid = ad8b1231-c006-4870-8530-770cd6184412

Le premier champs : StringHandling.EREPLACE("-","",id) si id = 84412 alors cela n'est pas nécessaire

Le deuxième : StringHandling.RIGHT(uuid,5)

Pour transformer un int en string : id+""

Pour transformer un string en int : Integer.parseInt("01")

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#15 Fri 06 August 2010 16:45

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Merci Yves,

le job marche désormais... mais sans résultat, il trouve un enregistrement mais sans le supprimer!.

J'ai créé un champ dans la table metadata (là où se trouve l'UUID): "REF_MSLINK".

Dans le tOracleInput, la requête est la suivante:

Code:

"SELECT GEOSOURCE.METADONNEES.MSLINK
        
FROM    GEOSOURCE.METADONNEES

WHERE mot_cle like '"+  ((String)globalMap.get("tMsgBox_1_RESULT")) +"' 
AND   mot_cle_com like '"+ ((String)globalMap.get("tMsgBox_2_RESULT")) +"'
"

(toujours avec les msgbox qui renvoient les variables).

Puis ce composant est relié à un tMap:
en input: MSLINK (de la table metadonnees); en output le schéma de la table metadata.
En output, en face de REF_MSLINK, j'ai glissé-déposé l'expression row2.MSLINK+""

Puis tMap est relié à tOracleOutput qui fait une action de suppression sur les données de la table metadata.

"1 row" circule sur mon job mais rien de supprimé et pas de message dans les commentaire d'exécution.

Est-ce que la jointure est encore mal renseignée?

Est-ce le fait qu'il n'y ait pas de clause where dans le composant tOracleOutput et qu'il faut préférer le composant tELTOracleOutput?

Merci



Luc

Dernière modification par lucclementSTR (Fri 06 August 2010 17:12)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#16 Fri 06 August 2010 17:14

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Le premier sous-job sert à mettre à jour le champ "REF_MSLINK" (de type chaîne) de la table metadata

Hors ligne

 

#17 Mon 09 August 2010 16:53

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Bonjour,

j'ai un champ date qui est reconnu comme chaîne dans TOS.

Je cherche à le convertir en date dans un composant tMap mais avec la fonction certainement pas appropriée:

TalendDate.parseDate("yyyy-MM-dd HH:mm:ss","Var.date")   

Merci de votre aide


Luc

Hors ligne

 

#18 Tue 10 August 2010 10:52

lucclementSTR
Participant occasionnel
Lieu: Albi
Date d'inscription: 12 Mar 2010
Messages: 33

Re: [SDI][TOS] - tELTOracleOutput WHERE_CLAUSE

Bonjour,

comment récupérer le contenu d'une requête d'un composant tOracleInput par exemple?

La variable "tOracleInput_QUERY_" permet juste de récupérer l'écriture de la requête.

Merci

Cdlt

Luc Clément

Hors ligne

 

Pied de page des forums

Powered by FluxBB