Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
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 22/07/2011, 13h14   #1
Nouveau Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 74
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 74
Points : 34
Points : 34
Par défaut SQL Oracle Talend

Bonjour,

Je souhaiterais effectuer des requêtes SQL sur un table Oracle. Le soucis c'est qu'Oracle n'accepte pas certains caractères spéciaux. Je m'explique.

Ma requête est la suivante :
Code :
1
2
3
4
 
SELECT * FROM table_1 WHERE column_id = 'toto:' 
AND column_concept IN ( SELECT column_concept FROM table_2
                                   WHERE tata LIKE '\un\20. deux\10. trois\quatre\%')
A priori les caractères '\' et '%' ne sont pas reconnus.

J'ai déjà essayé ceci:
Code :
1
2
3
4
 
SELECT * FROM table_1 WHERE column_id = 'toto:' 
AND column_concept IN ( SELECT column_concept FROM table_2
                                   WHERE REPLACE(tata,'\','.') LIKE '.un.20. deux.10. trois.quatre.%')
Ou cela

Code :
1
2
3
4
 
SELECT * FROM table_1 WHERE column_id = 'toto:' 
AND column_concept IN ( SELECT column_concept FROM table_2
                                   WHERE tata LIKE '\\un\\20. deux\\10. trois\\quatre\\%')
Mais aucun succès. Je suis un peu embarrassée et désespérée. En utilisant Oracle Sql Developer, ou DbVizualiser, ma requête fonctionne parfaitement.
Mais lorsque je l'importe sous Talend (quand je quitte l'univers oracle), rien ne va plus. Auriez vous des pistes?

D'avance merci.
cupidette92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 11h23   #2
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Bonjour,

J'ai un peu de mal à voir quelle est la chaîne de caractère que tu veux tester.
A priori, l'utilisation du % ne pose pas de problème, ça doit donc venir des \ que tu utilises.

Si tu souhaites tester la chaîne avec les \, essaie peut-être ceci :

Code :
1
2
3
SELECT * FROM table_1 WHERE column_id = 'toto:' 
AND column_concept IN ( SELECT column_concept FROM table_2
                                   WHERE tata LIKE '\\\un\\\20. deux\\\10. trois\\\quatre\\\%')
Mais si d'après toi ta requête fonctionne sous sql developer, je ne vois pas pourquoi elle ne fonctionnerait pas avec Talend...

Nicolas
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 11h35   #3
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
Ah, j'ai peut-être trouvé.
Le problème est que le caractère d’échappement \ est évalué une première fois par java, avant d'être évalué une deuxième fois par oracle.

Du coup, il faut les doubler... au moins...

Par exemple je dois en mettre 6 pour que ce test fonctionne (je ne saurais pas trop dire pourquoi 6 en fait) :
Code :
"select id, description from ma_table where description like 'Bonjour\\\\\\%'"
Pour pouvoir détecter la chaîne 'Bonjour\, ...'

J'espère que cela pourra t'aider...
J'ai fait mes tests avec mysql, mais ça ne devrait pas être différent d'oracle.

Nicolas
DevNico 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 07h15.


 
 
 
 
Partenaires

Hébergement Web