我有以下插入语句:
insert into temp1 values (test1, test2)
insert into temp2 values (test3)
预期成绩:
insert into temp1 values (100, 200)
insert into temp2 values (300)
从本质上讲,我想更换一次查询的文字test1,test2与价值100,200分别和第二个查询替换test3与价值300。有人可以为上述用例提供映射文件帮助吗?
我尝试了以下操作,但没有任何效果。
搜索值(RegEx)替换值
(1)(.*values.*)(.*test1)(.*,)(.*test2) -> $2 val1 $4 val2
(2)(.*values.*)(.*test1) -> $2 val3
Run Code Online (Sandbox Code Playgroud)
如果从字面上看这是您需要执行的映射范围,那么常规ReplaceText处理器就足够了。使用以下设置将得到所需的输出:
它仅检测每个test后跟一个数字的实例,并用该数字和替换它00。
如果需要ReplaceTextWithMapping用于更复杂的查找,则映射文件必须具有以下格式:
search_value_1 replacement_value_1
search_value_2 replacement_value_2
etc.
Run Code Online (Sandbox Code Playgroud)
搜索值和替换值之间的分隔符为\ t。
--------------------------------------------------
Standard FlowFile Attributes
Key: 'entryDate'
Value: 'Wed Dec 07 10:48:24 PST 2016'
Key: 'lineageStartDate'
Value: 'Wed Dec 07 10:48:24 PST 2016'
Key: 'fileSize'
Value: '66'
FlowFile Attribute Map Content
Key: 'filename'
Value: '56196144045589'
Key: 'path'
Value: './'
Key: 'uuid'
Value: 'f6b28eb0-73b5-4d94-86c2-b7a5d4cc991e'
--------------------------------------------------
insert into temp1 values (100, 200)
insert into temp2 values (300)
Run Code Online (Sandbox Code Playgroud)