2009-03-19 6 views
4

Est-ce que quelqu'un connaît une commande SQL pour remplacer les guillemets intelligents MS Office avec leurs cousins ​​ASCII? J'utilise une base de données oracle et les champs sont de type varchar2SQL pour remplacer les guillemets intelligents

Répondre

2
REPLACE(REPLACE(str, '`', ''''), '´', '''') 

Ou est-ce que j'ai oublié votre question?

-1
update table set column = replace(column, string_to_replace, [ replacement_string ]) 
3

mise à jour colonne de jeu de table = remplacer (remplacer (colonne, chr (147), ' "'), chr (148), '"')

+1

Ceci est correct si le jeu de caractères dans la base de données est la page de codes 1252 (Europe de l'Ouest) ou quelques pages de codes similaires. Pour les autres jeux de caractères, les citations intelligentes peuvent être codées différemment. – bobince

+0

pages de codes pages schmode ... Vous avez raison, bien sûr. – Rich

1

J'ai eu un problème similaire. Pour moi après que les citations aient été stockées dans la base de données elles sont apparues ainsi "Â".

SELECT abstract FROM foo WHERE version = '1.0' and newscode = 'au20309'; 

MaeÂ'r Ffordd gynaliadwy y mae bwyd yn cael ei dyfu, ei Brynu aÂ'i baratoi ...

Voici comment je les ai remplacé. D'abord trouver la valeur ASCII pour ce caractère inhabituel "Â". Ensuite, utilisez la fonction chr pour afficher le «Â». Le || fonction concaténer les deux caractères. La fonction q est utile pour 'quote' la chaîne de citation intelligente ..

SELECT REPLACE(abstract,chr(50050) || q'#’#' , q'#'#') 
FROM foo 
WHERE version = '1.0' and newscode = 'au20309'; 

Mae'r Ffordd gynaliadwy y mae bwyd yn cael ei dyfu, ei Brynu Aï baratoi ...

Cette travaillé très bien pour moi sur notre système Oracle 10.

Questions connexes