如果我有两个冗长的字符串,VARCHAR2,是否有一个简单的方法或算法我可以复制或移植到PL / SQL来比较它们,插入标记(即,当在网页中呈现时,差异将被突出显示).
例如:
BEGIN
DBMS_OUTPUT.put_line(
markup_differences
(in_old => 'Hello world, this is your captain speaking.'
,in_new => 'Hello WORLD, this is not your captain.'
,in_preins => '<ins>'
,in_postins => '</ins>'
,in_predel => '<del>'
,in_postdel => '</del>'
));
END;
预期产量:
Hello <del>world</del><ins>WORLD</ins>, this is <ins>not</ins> your captain
<del>speaking</del>.
请注意,这表明“世界”已更改为“WORLD”,插入了“not”,并且删除了“speak”.
背景:我的目的是比较两个大部分相似的HTML片段,并用高亮标记它们以便在浏览器中显示.性能不是优先考虑的事项.这是一次性的应用程序,所以我不是一个完美的解决方案.即使某些事情让我变得更好,但事实上我还没有向客户承诺任何东西:)
或者,我可以轻松地在我的Apex应用程序中使用Javascript中的简单解决方案.
最佳答案 John Resigs博客上有一个非常简单的js-diff算法:
http://ejohn.org/projects/javascript-diff-algorithm/
也许这有帮助.