在 Powercenter 中将“á”等字符替换为“a”

Replace characters such as " á " for " a " in Powercenter

我需要 Powercenter 方面的帮助。我有一个我使用的平面文件,在某些列中有文本,例如 "Los Ángeles",我需要将其更改为 "Los Angeles",否则“Á”显示为空字符,以 "Los NULLngeles" 或类似的东西。

一些附加信息:

我尝试在以下代码中使用 REPLACECHR:

REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(1,
REPLACECHR(0, clv, '|', ''),'á','a'),'é','e'),'í','i'),'ó','o'),'ú','u'),'Á','A'),'É','E'),'Í','I'),'Ó','O'),'Ú','U'),'ñ','n'),'Ñ','Ñ')

然而这并没有奏效。我怎样才能让它做我想做的事?

作为插件,第一个 REPLACECHR 是删除所有管道,以便上传到 SQL 服务器不会崩溃。

这是一个数据质量问题,必须返回给源团队。使用 REPLACE_CHR 无法找到它,因为它不是 ASCII 字符。

就映射而言,可以使用 REG_REPLACE 删除像这样的非 ascii 字符。 示例:REG_REPLACE(PRODUCT_DESC.'[^[:print]]','')

其他方法:https://kb.informatica.com/howto/6/Pages/21/535269.aspx?

您可以尝试在会话级别、文件属性设置中将代码页设置为 UTF-8 编码。还要检查您要加载的平面文件的代码页,它应该是 UTF-8。 希望这个回答对你有帮助。

我没有足够的声誉将此作为评论留下,否则我会的,但我会介绍我将如何解决这个问题。

在 Informatica 中,当您 select 数据查看器和 运行 数据查看器时,您能看到洛杉矶显示为 "Los Ángeles" 还是显示为 "Los NULLngeles"?

如果是后者,此解决方案将不起作用,因为您需要在将源数据加载到 informatica 之前对其进行清理(可以使用 python 和正则表达式轻松完成)

我将如何解决这个问题是使用 java trasnformation 遍历您的字符串,查看它们是否包含任何特殊字符,如果包含,则在该索引处替换它们。伪代码如下所示:

for(i = 0; i < myString.length(); i++){
   if(myString[i] == 'á' || myString[i] == 'Á')
        myString[i] = 'a';
}