Lors de la tentative d’exécution d’instructions d’insertion SQL à l’aide d’ Oracle SQL Developer, je continue à générer une invite “Entrez une valeur de substitution”:
insert into agregadores_agregadores ( idagregador, nombre, url ) values ( 2, 'Netvibes', 'http://www.netvibes.com/subscribe.php?type=rss\&url=' );
J’ai essayé d’ échapper au caractère spécial dans la requête en utilisant le ‘\’ ci-dessus mais je ne peux toujours pas éviter l’esperluette, ‘&’, provoquant une substitution de chaîne.
Allez-y les punks, fais ma journée 🙂
the & est la valeur par défaut pour DEFINE, ce qui vous permet d’utiliser des variables de substitution. J’aime l’éteindre en utilisant
SET DEFINE OFF
alors vous n’aurez plus à vous soucier de vous échapper ou du CHR (38).
|| chr(38) ||
Cette solution est parfaite.
Définissez le caractère de définition sur autre chose que &
SET DEFINE ~ créer la table blah (x varchar (20)); insérer dans les valeurs blah (x) ('blah & amp'); sélectionnez * from blah; X -------------------- blah & amp
insert into AGREGADORES_AGREGADORES (IDAGREGADOR,NOMBRE,URL) values (2,'Netvibes', 'http://www.netvibes.com/subscribe.php?type=rss' || chr(38) || 'amp;url=');
SELECT 'Free &' || ' Clear' FROM DUAL;
select 'one'||'&'||'two' from dual
La vraie réponse est que vous devez définir le caractère d’échappement sur «\»: SET ESCAPE ON
Le problème est peut-être dû au fait que l’échappement a été désactivé ou que le caractère d’échappement a été défini sur autre chose que «\». L’instruction ci-dessus permettra de s’échapper et de la définir sur ‘\’.
Aucune des autres réponses précédemment affichées ne répond réellement à la question initiale. Ils travaillent tous autour du problème mais ne le résolvent pas.