12
votes

Comment remplacer une seule citation avec une double citation dans la requête SQL - Oracle 10G?

Comment puis-je remplacer une seule citation (') avec double citation (") dans la requête SQL - Oracle 10G?


0 commentaires

5 Réponses :


21
votes

Cela devrait fonctionner:

UPDATE myTable
SET myField = REPLACE(myField, '''', '"');


0 commentaires

9
votes

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)


0 commentaires

-3
votes

dix bucks dit que cette chose est large à l'injection SQL et la réponse correcte est d'utiliser le paramétrage.


2 commentaires

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.



0
votes

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 "


0 commentaires

0
votes

Cela devrait fonctionner:

UPDATE myTable
SET field = replace(your_string,Chr(39),Chr(39)||Chr(39));


1 commentaires

Je crois que votre réponse remplace un ' avec deux caractères dupliqués (' '' ). 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 " (caractère 34).