Comment puis-je remplacer une seule citation (') avec double citation (") dans la requête SQL - Oracle 10G? P>
5 Réponses :
Cela devrait fonctionner:
UPDATE myTable SET myField = REPLACE(myField, '''', '"');
Vous pouvez également utiliser des codes ANSI, pour le rendre plus cristallin ce qui se passe:
SELECT someString
,replace(someString, Chr(39), Chr(34)) as replacedString
FROM (SELECT ' abc ' || Chr(39) || ' def ' as someString
FROM Dual)
dix bucks dit que cette chose est large à l'injection SQL et la réponse correcte est d'utiliser le paramétrage. P>
Cette réponse aurait été beaucoup plus utile si vous avez fourni un exemple de paramétrage. Comment l'utiliseriez-vous pour résoudre ce problème?
Nous ne savons rien de l'environnement à partir duquel cela est appelé, ni la requête, il n'ya donc aucun exemple général que je peux donner qui sera de quelque manière que ce soit pertinent. C'est probablement quelque chose appelé du code client et il existe un nombre de façons de paramétrer cela.
Si vous avez une variable dans des guillemets simples avec une Apostrophe E.G. 'John's Book', simplement insérer 2 apostrophes. C'est-à-dire '' John ''s Book'. Remarque: N'utilisez pas de citation double " p>
Cela devrait fonctionner:
UPDATE myTable SET field = replace(your_string,Chr(39),Chr(39)||Chr(39));
Je crois que votre réponse remplace un ' code> avec deux caractères dupliqués (' '' code>). Bien que cela puisse ressembler à la même chose, ce n'est pas le même caractère que l'auteur interrogé sur, qui est " code> (caractère 34).