为什么 REGEXP_REPLACE 会抛出一个不可翻译的字符?这是一个错误吗?
Why would REGEXP_REPLACE throw an untranslatable character ? Is this a bug?
我有一个巨大的tabletestTable
。我正在尝试通过仅保留字母和空格来清理 txt
列。
这就是我所做的
SELECT id_cd, REGEXP_REPLACE(txt, '[^a-zA-Z ]', '', 1, 0, 'i') new_txt
FROM testTable
以上查询抛出 String contains an untranslatable character
。我不知道它在哪一行失败,因为 table 很大。
当我将行数限制为某个较小的数字时,它起作用了,所以查询语法没问题。
SELECT TOP 10 id_cd, REGEXP_REPLACE(txt, '[^a-zA-Z ]', '', 1, 0, 'i') new_txt
FROM testTable
这是一个错误吗?我怎样才能发现它失败的那一行?为什么它首先会失败?
我还尝试了以下方法:
SELECT id_cd, REGEXP_REPLACE(TRANSLATE(txt using unicode_to_latin), '[^a-zA-Z ]', '', 1, 0, 'i') new_txt
FROM testTable
但也遇到了同样的错误。
我们在年初遇到了同样的问题。
您可以使用 translate_chk 函数找到这些字符,其中 returns 0 if success else non zero character。
我们处理如下
case when translate_chk(d.column using latin_to_unicode) <> '0'
then 0
else Instr(d.column , 'E3S')
end column
但在那种情况下我们不关心丢失的数据,为此我们加载了 0。
希望对你有帮助..
我有一个巨大的tabletestTable
。我正在尝试通过仅保留字母和空格来清理 txt
列。
这就是我所做的
SELECT id_cd, REGEXP_REPLACE(txt, '[^a-zA-Z ]', '', 1, 0, 'i') new_txt
FROM testTable
以上查询抛出 String contains an untranslatable character
。我不知道它在哪一行失败,因为 table 很大。
当我将行数限制为某个较小的数字时,它起作用了,所以查询语法没问题。
SELECT TOP 10 id_cd, REGEXP_REPLACE(txt, '[^a-zA-Z ]', '', 1, 0, 'i') new_txt
FROM testTable
这是一个错误吗?我怎样才能发现它失败的那一行?为什么它首先会失败?
我还尝试了以下方法:
SELECT id_cd, REGEXP_REPLACE(TRANSLATE(txt using unicode_to_latin), '[^a-zA-Z ]', '', 1, 0, 'i') new_txt
FROM testTable
但也遇到了同样的错误。
我们在年初遇到了同样的问题。 您可以使用 translate_chk 函数找到这些字符,其中 returns 0 if success else non zero character。 我们处理如下
case when translate_chk(d.column using latin_to_unicode) <> '0'
then 0
else Instr(d.column , 'E3S')
end column
但在那种情况下我们不关心丢失的数据,为此我们加载了 0。 希望对你有帮助..