原文发布时间: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了。