在更新表中的记录时,我正在用相关信息更新该记录的“注释”列。这还包含更新的日期和时间以及特定信息。 在每次更新时,我正在检查以前的“注释”列值,如果要在“注释”列中更新的新值与“注释”列中已有的值相同,则不应更新它。
场景1:第一次低于值将插入“注释”栏
[2015-11-30 04:03 by ]:(ENG)– Test Data Test Data(All companies) - Update.[1234]
Scenerio 2:如果在“注释”栏中插入相同的值
[2015-11-30 05:05 by by ]:(ENG)– Test Data Test Data(All companies) - Update.[1234]
现在正在更新我正在比较如下:
IF NVL(:old.notes, '-') != NVL(:new.notes,'-') THEN
//code here
END IF;
如您所见,即使两个同时发生的值相同,它们也会因日期而有所不同。如何在比较中忽略日期
每个要插入的新记录将在最后用新行分隔。
答案 0 :(得分:0)
鉴于您的示例,您看起来对第一个方形右括号后面的字符串部分感兴趣。使用substr,instr函数将为你获取该部分字符串。
实施例
declare
l_string varchar2(100);
begin
l_string := '[2015-11-30 05:05 by by ]:(ENG)– Test Data Test Data(All companies) - Update.[1234]';
l_string := substr(l_string, instr(l_string, ']') + 1);
dbms_output.put_line(l_string);
end;
使用生成的字符串,您可以进行比较。