Lors de la tentative d'exécution d'instructions d'insertion SQL à l'aide de Oracle SQL Developer , je continue à générer une invite "Entrez la 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é en échappant le caractère spécial de la requête en utilisant le '\' ci-dessus mais je ne peux toujours pas éviter l'esperluette '&', provoquant une substitution de chaîne.
le & est la valeur par défaut de DEFINE, ce qui vous permet d'utiliser des variables de substitution. J'aime l'éteindre avec
SET DEFINE OFF
vous n'aurez alors plus à craindre de vous échapper ni de CHR (38).
|| chr(38) ||
Cette solution est parfaite.
Définissez le caractère défini sur autre chose que &
SET DEFINE ~ Créer un tableau blah (x varchar (20)); Insérer dans blah (x) les valeurs ('blah & amp'); Select * parmi bla; X -------------------- bla & 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 est désactivé ou que le caractère d'échappement a été défini sur autre chose que '\'. L'instruction ci-dessus activera l'échappement et définissez-le sur '\'.
Aucune des autres réponses précédemment publiées ne répond en réalité à la question initiale. Ils travaillent tous autour du problème mais ne le résolvent pas.