Rechercher sur arkzoyd.com

23 avril 2006

"q-Quote" !

L'apostrophe dans le SQL délimite les chaînes de caractère. Le problème, c'est qu'à chaque fois que je fais une phrase, il y a une apostrophe dedans ! Vous allez me dire : il "suffit" de mettre 2 apostrophes successives. L'exemple ci-dessous illustre à quel point les choses deviennent lisibles :

SQL> select trunc(dbms_random.value(1,2),5)||' ''''' temps
from dual;

TEMPS
--------------------------------
1,24321 ''

avec la version 10.2 apparaît le "q-quote" pour saisir une chaine de caractère. Le principe est simple, commencez votre chaîne de caractère par q' (en anglais q-quote) suivi d'un caractère de parenthèse votre choix comme par exemple (, [ ou {. La chaîne de caractère se termine alors par le caractère fermant, soit dans l'ordre ), ] ou } suivi de l'apostrophe. Ce n'est pas clair... L'exemple devient :

SQL> select trunc(dbms_random.value(1,2),5)||q'( '')' temps
from dual;

TEMPS
--------------------------------
1,24321 ''

Ca ne vous semble peut-être pas plus simple et pourtant, avec la 10.2, j'ai divisé par 2 le nombre d'échec de saisie du SQL. En plus :
1) SQL*Developer comprend cette syntaxe et le "color coding" fonctionne correctement
2) Ca marche dans le code PL/SQL !