我正在尝试从自由文本字段中提取日期(因为我们的过程非常棒:\)并且继续遇到Teradata错误6706.我正在使用的正则表达式是:REGEXP_SUBSTR(original_field,'(\d{2})\/(\d{2})\/(\d{4})',1) AS new_field
。我不确定字段的类型HELP TABLE
在字段的“类型”列中是否有空白。
我已经尝试使用TRANSLATE(col USING LATIN_TO_UNICODE)
以及UNICODE_TO_LATIN
进行转换,这两者实际上都会导致错误。直接CAST(original_field AS VARCHAR(255))
不能解决问题,尽管该演员阵容确实有效。我还尝试从场上剥离各种特殊字符(新线,回车等),然后让REGEXP_SUBSTR
对它进行破解,既可以自己也可以使用CAST&翻译我已经提到过。
此时我不确定问题是什么,并且可以使用其他选项的一些指导来尝试。
答案 0 :(得分:0)
最终版本最终成为了
, CASE
WHEN TRANSLATE_CHK(field USING LATIN_TO_UNICODE) = 0 THEN
REGEXP_SUBSTR(TRANSLATE(field USING LATIN_TO_UNICODE),'(\d{2})\/(\d{2})\/(\d{4})',1)
ELSE NULL
END AS Ref_Date
无论出于何种原因,在TRIM
内使用TRANSLATE
似乎会导致问题。只有在我对TRANSLATE
内的任何和所有函数进行条带化后,TRANSLATE
才会执行,REGEXP_SUBSTR
才能正常工作。