'[^~]+' 是做什么的?
What does '[^~]+' do?
我正在审查我到公司之前编写的一些代码,我看到这个 '[^~]+'
在很多代码中使用。要添加一些上下文,它是 for 循环函数的一部分。
DECLARE
new_parent_id number;
BEGIN
FOR i IN (
select regexp_substr(:PAGE1_SELECTED, '[^~]+', 1, level) material_num, rownum
from dual
connect by regexp_substr(:PAGE1_SELECTED, '[^~]+', 1, level) is not NULL)
LOOP
if i.ROWNUM = 1 then
new_parent_id := ASSIGN_NEW_MATERIAL (
pMATERIAL_NUMBER => i.MATERIAL_NUMBER,
pASSEMBLY_NAME => :PAGE1_NEW_ASSEMBLY
);
else
ASSIGN_MATERIAL_TO_PARENT (
pNEW_PARENT_ID => new_parent_id,
pPART_NUMBER => i.PART_NUMBER
);
end if;
END LOOP;
END;
我希望 :PAGE1_SELECTED
是此代码正在解析的 material_num 值的波浪号分隔字符串。如果您在调用此代码以确定没有波浪号时查看绑定变量的值,我将返回到应用程序以查看是否有不同的代码路径可以生成值列表。
我正在审查我到公司之前编写的一些代码,我看到这个 '[^~]+'
在很多代码中使用。要添加一些上下文,它是 for 循环函数的一部分。
DECLARE
new_parent_id number;
BEGIN
FOR i IN (
select regexp_substr(:PAGE1_SELECTED, '[^~]+', 1, level) material_num, rownum
from dual
connect by regexp_substr(:PAGE1_SELECTED, '[^~]+', 1, level) is not NULL)
LOOP
if i.ROWNUM = 1 then
new_parent_id := ASSIGN_NEW_MATERIAL (
pMATERIAL_NUMBER => i.MATERIAL_NUMBER,
pASSEMBLY_NAME => :PAGE1_NEW_ASSEMBLY
);
else
ASSIGN_MATERIAL_TO_PARENT (
pNEW_PARENT_ID => new_parent_id,
pPART_NUMBER => i.PART_NUMBER
);
end if;
END LOOP;
END;
我希望 :PAGE1_SELECTED
是此代码正在解析的 material_num 值的波浪号分隔字符串。如果您在调用此代码以确定没有波浪号时查看绑定变量的值,我将返回到应用程序以查看是否有不同的代码路径可以生成值列表。