【发布时间】:2010-10-14 09:23:37
【问题描述】:
有人知道用 ASCII 表亲替换 MS Office 智能引号的 SQL 命令吗?我正在使用 oracle 数据库,字段类型为 varchar2
【问题讨论】:
标签: sql oracle smart-quotes
有人知道用 ASCII 表亲替换 MS Office 智能引号的 SQL 命令吗?我正在使用 oracle 数据库,字段类型为 varchar2
【问题讨论】:
标签: sql oracle smart-quotes
REPLACE(REPLACE(str, '`', ''''), '´', '''')
还是我错过了你的问题?
【讨论】:
update table set column = replace( column, string_to_replace, [ replacement_string ] )
【讨论】:
更新表集column = replace(replace(column, chr(147),'"'), chr(148), '"')
【讨论】:
TRANSLATE 比 REPLACE 更合适。
TRANSLATE(str, '`´', '''''')
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions204.htm#sthref2477
【讨论】:
我也遇到过类似的问题。对我来说,在将引号存储在数据库中之后,它们就出现了“Â'”。
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 系统上运行良好。
【讨论】: