Requete insert dans oracle

Fermé
Peguinette - 16 juil. 2001 à 17:18
 falc0 - 25 févr. 2008 à 14:03
Salut,

J'utilise Oracle 8i, et je voudrais savoir quelle est la bonne syntaxe pour ma requete sql afin d'inserer une chaine de caractere qui contient le fameux caractere qui fait chier tout le monde : le simple cote également appelé apostrophe.

En tant normal je met :

insert into maTable (label) values (' " + maVariable " ');

c'est à dire : simple cote, double cote, plus, maVariable, plus, double cote, simple cote.

Alors qd maVarible contient une chaine avec une cote, j'écrit quoi pour que ca marche ???

merci par avance.

2 réponses

Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
17 juil. 2001 à 01:15
Je ne connais pas Oracle, mais sur MySQL, il suffit de faire un "AddSlash(maVariable)" en PHP ou bien "maVariable =~ s/'/\\'/g" en PERL...
En gros tu ajoutes un backslash \ devant tes simples cotes ' par le langage que tu veux ici le backslash est le caractere d'echapement.

Ensuite tu verifies ce qu'il y a dans la base... MySQL supprime automatiquement les \' et les remplace par '.
Ex: "Coucou c\'est moi" donnera dans la base "Coucou c'est moi";

Tu peux tester sous Oracle 8i. Au passage, ca m'interesse de savoir si ca marche.
Merci.

-= Bobinours =-
0
merci pour ton aide,
mais malheureusement la fonction AddSlash() doit etre propre à Mysql et n'existe donc pas sous oracle.

Mais j'ai trouver la solution :

En fait c'est le meme principe que le backslash sauf que c'est un simple cote :

il faut donc doubler le simple cote et au moment de l'insertion dans oracle il n'en insert qu'un seul.

Ex : "Coucou c''est moi" donnera dans la base : "Coucou c'est moi"

merci tout de meme.
0
Utilisateur anonyme > Peguinette
17 juil. 2001 à 16:13
Salut
ok en fait c'est le meme principe qu'en Pascal, merci Penguinette
Castor
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504 > Peguinette
17 juil. 2001 à 19:02
[ Répondre à Peguinette ]

C'est bizarre. Ca me parait meme absurde !?
J'ai du mal à imaginer comment le parser fait pour échapper le simple cote ' si il y en a deux.

NB: Fais un test si dans ta Chaine de depart tu as 2 simple-cotes successives... Que ce passe-t-il ?
NB2: Le "AddSlash()" est une fonction PHP (ça n'a rien à voir avec MySQL), c'est un langage à part comme l'ASP ou le JSP.

M'enfin, vu que je ne connais pas la base et que ca marche... C'est l'essentiel :o)

-= Bobinours =-
0
up!
même problème 7 ans plus tard :D
le doublement du quote ne marche pas et impossible de l'échapper avec une slash/anti-slash
0
SALUT,

Alors moi j'utilise ORACLE 10g bon il te suffit d'utiliser l'alternative Quote (q) operator:

q'[ta chaîne de caractère avec un ' ... ]'
0