Sql 如何在Oracle表列中查找无效的UTF-8字符
我尝试了上面提到的建议()来检查列中是否有非utf8字符的行。我通过比较列的Sql 如何在Oracle表列中查找无效的UTF-8字符,sql,oracle,utf-8,character-encoding,oracle-sqldeveloper,Sql,Oracle,Utf 8,Character Encoding,Oracle Sqldeveloper,我尝试了上面提到的建议()来检查列中是否有非utf8字符的行。我通过比较列的LENGTH和LENGTHB值来比较这一点。然而,大约有数千行是这样的 对于其中一行,列中的值是字母数字,只有一个特殊字符,即英镑符号->。(在MS Word中还发现了其他带有项目符号列表符号的记录,这些记录如下所示: 在记事本++)中 我在列上使用了函数RAWTOHEX,输出中有C2A3,这是符号的表示形式。我很困惑,我该如何证明它是非utf8字符,再想想,比较列长度的方法是正确的吗 注: PS:我使用的是SQL d
LENGTH
和LENGTHB
值来比较这一点。然而,大约有数千行是这样的
对于其中一行,列中的值是字母数字,只有一个特殊字符,即英镑符号->。(在MS Word中还发现了其他带有项目符号列表符号的记录,这些记录如下所示: 在记事本++)中
我在列上使用了函数RAWTOHEX,输出中有C2A3,这是符号的表示形式。我很困惑,我该如何证明它是非utf8字符,再想想,比较列长度的方法是正确的吗
注:
PS:我使用的是SQL developer,但我不是oracle开发人员。你的问题是什么?你说的“无效UTF-8字符”是什么意思?你正确地指出,
C2A3
代表UTF-8中的
那么你说的“它是非utf8字符”到底是什么意思?也许你是指非ASCII字符?@WernfriedDomscheit我们正在使用第三方工具捕获CDC数据,如果数据包含非UTF8字符,该工具将生成错误。因此,我们需要确定表中是否存在这些问题。您知道如何识别它们吗?再说一遍,“非UTF8字符”是什么意思?
SELECT * FROM NLS_DATABASE_PARAMETERS;
----------------------------------------
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_CHARACTERSET AL32UTF8