一些转换器的用法和注意事项(十)——CharacterCodeExtractor和CharacterEncoder

原文发布时间:2010-12-27

作者:毛毛虫

这对转换器是完成字符和ASCII互换的。

CharacterCodeExtractor转换器提取源字符串属性中的第一个字符的整数字符编码,把这个整数值作为要素的一个属性。可以用来获取任何字符的ASCII,包括不可见字符。

转换器设置如下:


参数 Source String Attribute 是包含了想要找到等值ASCII值的字符的属性;参数Character Code Attribute 是存储得到的ASCII值的属性。
 
CharacterEncoder转换器转换字符的ASCII属性到一个字符(这个字符的数字码包含在源代码属性或输入的整数中)。
其转换器设置如下:

参数Source Code 是包含了任意字符 ASCII 值的属性或数字;参数Character String Result Attribute 是用来存储产生的值的属性。
 
例如:一个属性的值为1,使用CharacterCodeExtractor转换器后 得到一个ASCII值49;反之,在CharacterEncoder转换器的Source Code中输入49,会得到一个值1。
应用示例:
在向数据库写入数据时,在运行到一定阶段,Workbench没有提示任何错误而结束运行,如下图:

检查FME模板,发现是在转换器Tester上发生的错误:


这时使用转换器SubstringExtractor分析字段F_CARD_NO,找出这个字段的第一个字符,然后使用CharacterCodeExtractor转换器查找下其相应的ASCII码——13。查找ASCII表,与数值13对应的是回车符,也就是说,在读到以回车符开始的记录时,不能正常读入数据。这时候,可以使用转换器AttributeTrimmer进行下面设置可以去除起始和结束时的回车符。


这时就可以成功写入数据到Oracle了。



猜你喜欢

转载自blog.csdn.net/fmechina/article/details/80963713