我们的应用程序从各种来源接收数据。其中一些包含HTML字符组成而不是常规字符。因此,我们不是使用字符串“â”来接收字符串“â”。
我们如何转换“â”使用SQL / PLSQL创建数据库字符集中的字符?
我们的数据库是10GR2。
答案 0 :(得分:5)
Unescape_reference和excape_reference我相信你正在寻找
UTL_I18N.UNESCAPE_REFERENCE('hello<å') 这将返回'hello<'|| chr(229)。
http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_i18n.htm#i998992
答案 1 :(得分:1)
您可以使用CHR()函数将ascii字符编号转换为字符表示。
SELECT chr(226)
FROM dual;
CHR(226) -------- â
有关详细信息,请参阅:http://www.techonthenet.com/oracle/functions/chr.php
希望它有所帮助...
答案 2 :(得分:0)
一个解决方案
replace(your_test, 'â', chr(226))
但是您必须嵌套许多替换函数,每个函数对应一个需要替换的实体。如果必须更换许多,这可能会非常慢。
您可以编写自己的函数,选择&符号并在找到时替换。
您是否搜索过Oracle提供的软件包手册?我知道他们的功能与少数实体相反。
答案 3 :(得分:0)
将包含HTML项目的oracle中的列转换为纯文本,您可以使用:
trim(regexp_replace(UTL_I18N.unescape_reference(column_name), '<[^>]+>'))
它将替换上述HTML字符,但也会删除HTML标记以删除前导和尾随空格。
我希望它会帮助别人。