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'
Version imprimable
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'
Il faut doubler les apostrophes dans la chaine.
Code:SELECT * FROM TABLE WHERE nom ='RESTITUTION D''AVANCE'
Lorsque les apostrophes vous embêtent pensez à utiliser 'q' comme suit
Le principe est simple: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
- q' commence la chaine de caractères
- # symbole indiquant le début de la chaine
- # symbole indiquant la fin de la chaine
- ' 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