Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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, 13h11   #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 Requêtes SQL sur une BD Oracle

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 22/07/2011, 13h23   #2
Membre confirmé
 
Homme Grégoire MARTIN
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Grégoire MARTIN
Âge : 32
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2011
Messages : 128
Points : 225
Points : 225
Bonjour,

Pas de problème à priori :

Code :
1
2
3
4
5
6
 
WITH TEST
AS (SELECT  '\un\20. deux\10. trois\quatre\cinq' AS CHAMP1 FROM DUAL)
SELECT * 
FROM TEST
WHERE CHAMP1 LIKE '\un\20. deux\10. trois\quatre\%'
Edit : pas vu la partie "Talend" de ta question, donc le probleme vient de Talend et non pas d'oracle à priori.
ORA-007 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/07/2011, 13h28   #3
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
Citation:
Envoyé par ORA-007 Voir le message
Bonjour,

Pas de problème à priori :

Code :
1
2
3
4
5
6
 
WITH TEST
AS (SELECT  '\un\20. deux\10. trois\quatre\cinq' AS CHAMP1 FROM DUAL)
SELECT * 
FROM TEST
WHERE CHAMP1 LIKE '\un\20. deux\10. trois\quatre\%'
Bonjour,

Oui la requête est correcte depuis un univers "Oracle". Mais si je veux interroger une base Oracle depuis "Talend" par exemple pour exporter le résultat dans un fichier ou table MySql ça passe plus...

Saurais tu comment gérer ces caractères spéciaux?
cupidette92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 13h33   #4
Membre confirmé
 
Homme Grégoire MARTIN
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Grégoire MARTIN
Âge : 32
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2011
Messages : 128
Points : 225
Points : 225
Bonjour,

une solution serait pour toi de passer par le code ASCII des caractères spéciaux.

Exemple oracle :

Code :
SELECT chr(92) FROM dual
Je pense que tu devrais aller plutôt ici :

http://www.developpez.net/forums/f97...ce/etl/talend/
ORA-007 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