源数据-
Cust_Id,Cust_Name,Cust_Address,Cust_Salary
1,Name1,Address,12,Road,40,10000
2,Name2,Addressline,2,15,20000
1.第一个场景,我想使用Informatica Powercenter像下面这样转换此平面文件并发送到目标表(Oracle)。
1.第二个场景,我想用竖线分隔符替换前两列逗号(Cust_Id、CustName)并保留地址列值中的逗号如何在记事本++中仅替换前两列逗号。
1.第三个场景,我想转换这个相同的源平面文件,并实现与Unix中的第二个场景相同的逻辑。
1.第四种方案,在Oracle中编写此方案的查询,并在单独的列中显示结果。例如:- Oracle中的预期输出
| 客户标识|客户_名称|地址|薪金|
| - ------|- ------|- ------|- ------|
| 1个|姓名1|地址:40号路12号|一万|
Informatica和记事本中的预期输出++
Cust_Id,Cust_Name,Cust_Address|Cust_Salary
1|Name1|Address,12,Road,40|10000
2|Name2|Addressline,2,15|20000
4条答案
按热度按时间qltillow1#
使用表达式转换从一列创建三列。2读取单列中的数据。
解释-
1,Name1,Address,12,Road,40,10000
substr(in_inp_data,1, instr(in_inp_data,','))
-这将生成1
,因为它将第一个字符剪切到第一个逗号,即1。substr(in_inp_data,instr(in_inp_data,',')+2,var_length_cust_name)
-这将生成Name1
,因为它将第一个逗号之后的字符串剪切到名称的长度。substr(in_inp_data, instr(in_inp_data,',',-1))
-从字符串末尾提取第一个逗号之前的最后一个字符串,即salary。f8rj6qna2#
第四种方案答案(Oracle/SQL Developer)
表格结构
语法
gpfsuwkq3#
第二个方案答案(记事本++)
1.打开记事本++
1.按下Ctrl + H按钮。
1.在查找内容区域:^(.+?),(.+?),(.+),(.+?)$
1.在替换为区域中:1美元|2美元|3美元|4美元
1.选择环绕。
1.选择正则表达式。
1.然后单击全部替换。
ni65a41a4#
第一个场景答案(Informatica Powercenter)
将所有输出端口链接到目标。