删除或替换Informatica中的“ ”字符

时间:2017-01-11 10:42:51

标签: replace character informatica

我们有一个要求,我们需要替换或删除源中存在的' '字符(这是一个无法识别的,未定义的字符)。在运行我的工作流程时,它运行成功,但是当我检查目标中的记录时,它们没有被提交。我在Informatica中收到以下错误

执行记录37的查询时出错:6706:该字符串包含不可翻译的字符。

我尝试过像replace_chr,reg_replace,replace_str等函数,但似乎都没有工作。请告知如何摆脱这个。非常感谢任何回复。

4 个答案:

答案 0 :(得分:0)

您需要在架构定义中使用charset => utf8-unidode-ci

但现在你可以这样做:

UPDATE tablename
SET columnToCheck = REPLACE(CONVERT(columnToCheck USING ascii), '?', '')
WHERE ...

update tablename
set columnToCheck = replace(columnToCheck , char(146), '');

Replace NonASCII Characters in MYSQL

答案 1 :(得分:0)


您可以替换表达式转换中的特殊字符。

REPLACESTR(1,Column_Name,'?',NULL)

REPLACESTR - 功能
1 - 位置
Column_Name - 具有特殊字符的列名 - 特殊字符
NULL - 替换字符

答案 2 :(得分:0)

您需要获取具有在连接上定义的相应字符集的行。你正在使用什么连接,ODBC或本机?什么是DB?

答案 3 :(得分:0)

特殊字符是一个挑战,并检查了信息网络我可以看到有一个涉及replace_str的kludge首先将一个变量设置为首先使用所有非特殊字符的字符串,然后在replace_str中使用结果变量使得最终值只有允许的字符https://network.informatica.com/thread/20642(nico的真棒解决方法,只要你能肯定地识别出应该被允许的每一个字符)......

作为替代kludge,我还会尝试在映射中的某处使用xml转换,因为informatica可以方便地将特殊字符转换为编码(十进制或十六进制,我记不住)值...只要您可以使用这些编码值出现在你的目标文本中你应该没问题(并在你的字符串中建立一些额外的空间,以适应额外字符的任何膨胀