Rechercher : dans
Par :

Requete insert dans oracle

Dernière réponse le 25 fév 2008 à 14:03:47 Peguinette, le 16 jui 2001 à 17:18:08 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « requete insert dans oracle » dans :
Oracle - Les requêtes hiérarchiques VoirCet article se base sur des tests et recherches réalisés dans la version 8.1.5 d'Oracle. Introduction Tout au long de cet article, nous allons nous intéresser à une structure de données permettant de créer un Forum de discussion, matérialisé par...

1

Bobinours, le 17 jui 2001 à 01:15:24

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 =-

Répondre à Bobinours

2

Peguinette, le 17 jui 2001 à 14:17:12

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.

Répondre à Peguinette

3

castor, le 17 jui 2001 à 16:13:41

Salut
ok en fait c'est le meme principe qu'en Pascal, merci Penguinette
Castor

Répondre à castor

4

Bobinours, le 17 jui 2001 à 19:02:58

[ 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 =-

Répondre à Bobinours

5

matt, le 21 jan 2008 à 17:39:49

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

Répondre à matt

6

 falc0, le 25 fév 2008 à 14:03:47

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 ' ... ]'

Répondre à falc0
Collection CommentÇaMarche.net