[英]Convert Below Source File in Notepad++ & Informatica. See the Given Source Table & Output Table I Want
Source Data -源数据 -
Cust_Id,Cust_Name,Cust_Address,Cust_Salary
1,Name1,Address,12,Road,40,10000
2,Name2,Addressline,2,15,20000
Cust_Id客户编号 | Cust_Name客户名称 | Address地址 | Salary薪水 |
---|---|---|---|
1 1个 | Name1姓名1 | Address,12,Road,40地址40号路12号 | 10000 10000 |
Desired output in Informatica & Notepad ++在 Informatica 和记事本中需要 output ++
Cust_Id,Cust_Name,Cust_Address|Cust_Salary
1|Name1|Address,12,Road,40|10000
2|Name2|Addressline,2,15|20000
use an expression transformation to create 3 columns from one column.使用表达式转换从一列创建 3 列。 Read the data in a single column.读取单列中的数据。
in_inp_data
out_Cust_Id = substr(in_inp_data,1, instr(in_inp_data,','))
var_length_cust_name= instr(in_inp_data,',',2) - instr(in_inp_data,',') -1
out_Cust_name = substr(in_inp_data,instr(in_inp_data,',')+2,var_length_cust_name)
out_Cust_Address = substr(in_inp_data, instr(in_inp_data,',',2)+1)
Cust_Salary = substr(in_inp_data, instr(in_inp_data,',',-1))
Explanation - 1,Name1,Address,12,Road,40,10000
substr(in_inp_data,1, instr(in_inp_data,','))
- this produces 1
because it cuts first character till first comma which is 1.解释 - 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)
- this produces Name1
because it cuts string after first comma upto length of name. substr(in_inp_data,instr(in_inp_data,',')+2,var_length_cust_name)
- 这会产生Name1
,因为它将第一个逗号之后的字符串剪切到名称的长度。
substr(in_inp_data, instr(in_inp_data,',',-1))
- this extracts last string before first comma from the end of string which is salary. substr(in_inp_data, instr(in_inp_data,',',-1))
- 这会从字符串末尾提取第一个逗号之前的最后一个字符串,即薪水。
Fourth Scenario Answer (Oracle/SQL Developer)第四种场景答案(Oracle/SQL Developer)
Table Structure表结构
Create Table Cust_Data
(Input_Data Varchar2(255));
Insert Into Cust_Data Values ('1,Name1,Address,12,Road,40,10000');
Insert Into Cust_Data Values ('2,Name2,Addressline,2,15,20000');
Select * From Cust_Data;
Syntax句法
Select
Substr (Input_Data, 1,
Instr(Input_Data,',')-1) Cust_Id,
Substr (Input_Data,
Instr (Input_Data, ',', 1) +1,
Instr(Input_Data,',', 1, 2) - Instr(Input_Data,',')-1) Cust_Name,
Substr (Input_Data,
Instr (Input_Data, ',', 1, 2) +1,
Instr(Input_Data,',', -1, 1)- Instr (Input_Data, ',', 1, 2)-1) Cust_Address,
Substr (Input_Data,
Instr (Input_Data, ',', -1, 1) +1 ) Salary
From Cust_Data;
First Scenario Answer (Informatica Powercenter)第一个场景答案 (Informatica Powercenter)
Expression Transformation
in_Input_Data (nstring)
out_Cust_Id (integer) = SUBSTR (in_Input_Data,1, INSTR (in_Input_Data,','))
var_Length_Cust_Name (integer) = INSTR(in_Input_Data,',',1, 2) - INSTR(in_Input_Data,',') -1
out_Cust_Name (nstring) = SUBSTR(in_Input_Data,INSTR(in_Input_Data,',', 1)+1,v_Length_Cust_Name)
out_Cust_Address (nstring) = SUBSTR(in_Input_Data,INSTR(in_Input_Data,',',1, 2)+1)
Cust_Salary (Double) = SUBSTR(in_Input_Data,INSTR(in_Input_Data,',',-1,1)+1)
Link all this Output Port to Target.将所有此 Output 端口链接到目标。
Second Scenario Answer (Notepad++)第二个场景答案(Notepad++)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.