如何使用SQL确定Oracle DB字段中的字符是否在UTF8字符集中,但在LATN-1之外?
我目前需要编写一个SQL查询来确定我的UTF8 Oracle数据库中与另一个使用LATIN-1的系统不兼容的行数 例如,Über不应返回结果,而是翻译 应该 我尝试过以下查询:如何使用SQL确定Oracle DB字段中的字符是否在UTF8字符集中,但在LATN-1之外?,oracle,utf-8,data-conversion,latin1,Oracle,Utf 8,Data Conversion,Latin1,我目前需要编写一个SQL查询来确定我的UTF8 Oracle数据库中与另一个使用LATIN-1的系统不兼容的行数 例如,Über不应返回结果,而是翻译 应该 我尝试过以下查询: select decode(convert(convert('Über test', 'WE8ISO8859P1'), 'UTF8'), convert('Über test', 'UTF8'), 1, 0) from dual; 然而,这并没有给我所需要的结果。有人能提供这个问题的纯SQL解决方案吗?谢谢您没有提及O
select decode(convert(convert('Über test', 'WE8ISO8859P1'), 'UTF8'), convert('Über test', 'UTF8'), 1, 0) from dual;
然而,这并没有给我所需要的结果。有人能提供这个问题的纯SQL解决方案吗?谢谢您没有提及Oracle版本。在11.2之前,应使用Oracle提供的字符集扫描仪CSSCAN进行此操作。从12.1开始,有一个新的实用程序叫做Oracle Database Migration Assistant for Unicode。我想我已经找到了答案: 从select ASCISTRCONVERT中选择*test string goes here、'UTF8'作为str from dual where REGEP_likestr、\\\[1-9A-F]| 0[1-9A-F].' 作为参考,unicode的拉丁-1块以\00FF结尾 比如说,
SQL> select * from (select asciistr(convert('翻译', 'UTF8')) as str from dual) where regexp_like(str, '.*\\([1-9A-F]|0[1-9A-F]).*');
STR
------------------------------
\7FFB\8BD1
如果有人能从逻辑的角度对此进行双重检查,我将不胜感激。感谢您的建议,我将研究这些问题-不幸的是,我无法在此数据库上运行任何实用程序。我必须通过标准SQL查询执行。