用SQL替换智能引号

时间:2009-03-19 18:41:01

标签: sql oracle smart-quotes

有没有人知道用他们的ASCII表兄弟替换MS Office智能引号的SQL命令?我正在使用oracle数据库,字段的类型为varchar2

5 个答案:

答案 0 :(得分:3)

更新表set column = replace(replace(column,chr(147),'“'),chr(148),'”')

答案 1 :(得分:2)

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

或者我错过了你的问题?

答案 2 :(得分:1)

我遇到过类似的问题。对于我,在引号存储在数据库中后,它们显示为“”。

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 ...

这就是我取代他们的方式。首先找到那个不寻常的“”字符的ascii值。

SELECT ascii('Â') FROM DUAL; -- returns 50050

然后使用chr函数渲染“”。 ||函数连接两个字符。 q函数可用于“引用”智能引用字符串..

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'i baratoi ...

在我们的Oracle 10系统上,这对我来说很合适。

答案 3 :(得分:0)

TRANSLATE比REPLACE更合适。

TRANSLATE(str, '`´', '''''')

http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions204.htm#sthref2477

答案 4 :(得分:-1)

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