79 votes

Comment gérer une citation unique dans Oracle SQL

Comment insérer un enregistrement dans une colonne dont le type de données est varchar et qui contient une apostrophe ?

Exemple Le prénom est ROBERT et le nom de famille est D'COSTA

151voto

Vincent Malgrat Points 42899

Utilisez deux guillemets simples

SQL> SELECT 'D''COSTA' name FROM DUAL;

NAME
-------
D'COSTA

Vous pouvez également utiliser l'option nouvelle méthode de cotation (10g+) :

SQL> SELECT q'$D'COSTA$' NAME FROM DUAL;

NAME
-------
D'COSTA

0 votes

Que faire si nous avons besoin de deux guillemets simples successifs ? Ce cas est-il visé par la méthode "alternative" ?

0 votes

@RichouHunter Vous devriez utiliser quatre guillemets simples : 'D''''COSTA' => D''COSTA . Alternativement : q'$D''COSTA$'

0 votes

Merci, cela m'a aidé ! Pour référence, en voici un autre Document Oracle concernant la syntaxe de citation alternative pour les littéraux de texte qui se lit un peu mieux que la doc PL/SQL liée.

3voto

LittleBobbyTables Points 17738

Remplacez l'apostrophe unique par deux apostrophes. La raison en est que l'instruction INSERT utilise des apostrophes pour entourer les chaînes de caractères.

3voto

Mousarules Points 48

Vous devriez mettre deux qutes simples pour en avoir une en retour

1voto

Mur3ph Points 27

J'ai trouvé la réponse ci-dessus donnant une erreur avec Oracle SQL, vous devez également utiliser des crochets, ci-dessous ;

SQL> SELECT Q'[Paddy O'Reilly]' FROM DUAL;


Résultat : Paddy O'Reilly

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X