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 10/10/2011, 10h45   #1
Provisoirement toléré
 
Inscription : avril 2007
Messages : 552
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 552
Points : 46
Points : 46
Par défaut Problème avec apostrophe

je n'arrive pas à faire lancer une requete qui contient apostrophe

voila message d'erreur
une chaine entre apostrophe ne setrmine pas correctement

Code :
1
2
 
SELECT * FROM TABLE WHERE nom ='RESTITUTION D'AVANCE'
minooo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 10h46   #2
SLE
Membre chevronné
 
Avatar de SLE
 
Homme Serge LESPAGNARD
Consultant informatique
Inscription : janvier 2004
Messages : 588
Détails du profil
Informations personnelles :
Nom : Homme Serge LESPAGNARD
Âge : 38
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : janvier 2004
Messages : 588
Points : 732
Points : 732
Il faut doubler les apostrophes dans la chaine.

Code :
SELECT * FROM TABLE WHERE nom ='RESTITUTION D''AVANCE'
SLE est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/10/2011, 11h00   #3
Membre expérimenté
 
Homme Mohamed Houri
Inscription : mars 2010
Messages : 286
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Houri
Localisation : France

Informations forums :
Inscription : mars 2010
Messages : 286
Points : 563
Points : 563
Lorsque les apostrophes vous embêtent pensez à utiliser 'q' comme suit

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
mhouri > DROP TABLE ma_table purge;
 
TABLE dropped.
 
mhouri > CREATE TABLE ma_table(nom varchar2(150));
 
TABLE created.
 
mhouri > INSERT INTO ma_table VALUES (q'#restitution d'avance#');
 
1 row created.
 
mhouri > commit;
 
Commit complete.
 
mhouri > SELECT *
  2  FROM ma_table
  3  WHERE nom = q'#restitution d'avance#';
 
NOM                                                                                                                     
---------------------
restitution d'avance
Le principe est simple:
  1. q' commence la chaine de caractères
  2. # symbole indiquant le début de la chaine
  3. # symbole indiquant la fin de la chaine
  4. ' fermez la côte
Remarque: vous n'êtes pas obligé d'utiliser le #. Vous pouvez utilisez aussi d'autres symboles (acceptés par Oracle). Exemple

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
mhouri > ed
Wrote file afiedt.buf
 
  1  SELECT *
  2  FROM ma_table
  3* WHERE nom = q'|restitution d'avance|'
mhouri > /
 
NOM
---------------------------------------------------
 
restitution d'avance
__________________
Bien Cordialement
www.hourim.wordpress.com
Mohamed.Houri est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h27.


 
 
 
 
Partenaires

Hébergement Web