簡體   English   中英

在Informatica PowerCenter Designer中拆分字符串

[英]Splitting Strings in Informatica PowerCenter Designer

我正在使用Informatica,我想根據字符串中的逗號分割字符串,並將逗號前后的所有內容返回到不同的端口/列。 例如,我有字符串

'Answer1, Answer2, Answer3' 

被傳遞給Expression Transformation,我希望將每個值/答案傳遞給不同的端口/列。 我的問題是,有時傳遞到表達式轉換中的字符串只有一個值('Answer1')或兩個值('Answer1,Answer2')或許多值('Answer1,Answer2,Answer3,Answer4,Answer5')但是我只需要將前三個值(或任何3個值)傳遞到不同的端口/列中,如果只有一個值,則其他2個端口/列應為空。

我不知道如何執行此操作,因為我不確定如何解釋可傳遞到表達式轉換中的不同類型的字符串,因為有時字符串中沒有逗號,有時則有很多逗號。 任何幫助,將不勝感激

您可以使用REG_EXTRACT函數執行此操作,該函數根據正則表達式模式提取字符串的一部分。

假設inp_ANSWERS是表達式轉換中的輸入端口。 使用以下表達式創建3個輸出端口:

out_ANS1:= REG_EXTRACT(inp_ANSWERS ,'([^,]*),?([^,]*),?([^,]*).*',1)
out_ANS2:= REG_EXTRACT(inp_ANSWERS ,'([^,]*),?([^,]*),?([^,]*).*',2)
out_ANS3:= REG_EXTRACT(inp_ANSWERS ,'([^,]*),?([^,]*),?([^,]*).*',3)

這會將前三個逗號分隔的值放在3個輸出列中。 如果少於3個值,則其余列將為空白。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM