6

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

4

5 回答 5

4

更新表集列=替换(替换(列,chr(147),'“'),chr(148),'”')

于 2009-03-19T18:50:40.970 回答
2
REPLACE(REPLACE(str, '`', ''''), '´', '''')

还是我错过了你的问题?

于 2009-03-19T18:46:12.383 回答
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 系统上工作得很好。

于 2010-01-13T09:56:02.703 回答
0

TRANSLATE 比 REPLACE 更合适。

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

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

于 2009-03-20T03:47:36.390 回答
-2
update table set column = replace( column, string_to_replace, [ replacement_string ] )
于 2009-03-19T18:46:21.057 回答