2

Apex アプリケーションにマスター詳細フォームがあります。これが私の表形式フォームのリージョン ソースです。

select 
"ITEM_ID",
"ORDER_ID",
"QUANTITY",
"PRICE",
"NOTE",
wwv_flow_item.md5(QUANTITY) "item_hash" -- set to 'hidden' in tabular form
from "#OWNER#"."ITEMS"
where "ITEM_ID" = :P2_ITEM_ID

また、以下のようにページ検証を追加しました。

DECLARE
   l_error   VARCHAR2 (4000);
BEGIN   
   FOR i IN 1 .. apex_application.g_f02.COUNT
       LOOP

       IF apex_application.g_f06(i) IS NOT NULL AND
   wwv_flow_item.md5(apex_application.g_f03(i)) <> apex_application.g_f06(i)
        THEN    
           l_error := l_error    
            || '</br>'
            || '</br>'
            || 'Row '
            || i
            || '</br>'
            || '          Quantity Error';
         END IF;  

      END LOOP;
   RETURN LTRIM (l_error, '</br>');    
END;

しかし、このフォームでデータを更新しようとすると、以下のエラーが発生します。

ユーザーが更新プロセスを開始してから、データベース内のデータの現在のバージョンが変更されました。現在の行バージョン識別子 = "4E8A473F53865EF8720F14022DC71E03" アプリケーション行バージョン識別子 = "0ABB3E73FB3E38844974E945864ECDED" (行 1)

どうすればこれを解決できますか?

4

1 に答える 1

-1

非表示の項目にそのテーブル名フィールドとして名前を付けてみてください。

例:

select 
"ITEM_ID",
"ORDER_ID",
QUANTITY as "QCT",
"PRICE",
"NOTE",
wwv_flow_item.md5(QUANTITY) "QUANTITY" -- set to 'hidden' in tabular form
from "#OWNER#"."ITEMS"
where "ITEM_ID" = :P2_ITEM_ID

エラーは、更新前に列名が変更されたことを示しています。item_hashとは異なるので、名前を付けましたQUANTITY

于 2015-01-11T10:35:10.257 に答える