39.1 DIFFファンクション

このファンクションは、行の表の差分を計算します。実装では、デフォルト・バージョンの最長共通部分式アルゴリズムを、最適化なしで使用します。DIFFファンクションは、非常に大きな入力を対象としていません。出力は、統合されたdiff形式に似ています。

構文

APEX_STRING_UTIL.FUNCTION DIFF (
    p_left    IN wwv_flow_t_varchar2,
    p_right   IN wwv_flow_t_varchar2,
    p_context IN PLS_INTEGER DEFAULT 3 )
    RETURN wwv_flow_t_varchar2;

パラメータ

表39-1 DIFFファンクションのパラメータ

パラメータ 説明

p_left

左側の表の行。

p_right

右側の表の行。

p_context

同様に返される、各差分の後の同じ行の数(デフォルトは3)。

戻り値

varchar2の表。最初の文字は差分のタイプを示します。

  • @ - 左側と右側の行番号。
  • " " (空白) - コンテキスト、左側と右側が同じです。
  • - - 行は左側にありますが、右側にはありません。
  • + - 行は右側にありますが、左側にはありません。

この例では、特定の表間の差分を計算します。

select apex_string_util.diff (
           p_left  => apex_t_varchar2('how','now','brown','cow'),
           p_right => apex_t_varchar2('what','now','brown','cow',1,2,3) )
  from sys.dual;

-> apex_t_varchar2 (
       '@@ 1,0 @@',
       '-how',
       '@@ 1,1 @@',
       '+what',
       ' now',
       ' brown',
       ' cow',
       '@@ 4,5 @@',
       '+1',
       '+2',
       '+3' )