我的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行)
我该如何解决这个问题?
尝试将隐藏项命名为其"表名"字段。
例如:
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
不同。