比较两个字符串,省略其中的日期

时间:2015-11-30 04:34:51

标签: oracle

在更新表中的记录时,我正在用相关信息更新该记录的“注释”列。这还包含更新的日期和时间以及特定信息。 在每次更新时,我正在检查以前的“注释”列值,如果要在“注释”列中更新的新值与“注释”列中已有的值相同,则不应更新它。

场景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;

如您所见,即使两个同时发生的值相同,它们也会因日期而有所不同。如何在比较中忽略日期

每个要插入的新记录将在最后用新行分隔。

1 个答案:

答案 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;

使用生成的字符串,您可以进行比较。