59.59 GET_HASHファンクション
このファンクションは、指定された値すべてについてハッシュ値を計算します。このファンクションを使用してデータ・レコードの失われた更新の検出機能を実装します。
構文
APEX_UTIL.GET_HASH (
p_values IN apex_t_varchar2,
p_salted IN BOOLEAN DEFAULT TRUE )
RETURN VARCHAR2;
パラメータ
パラメータ | 説明 |
---|---|
p_values |
入力値。 |
p_salted |
TRUE (デフォルト)の場合、内部セッション情報を含むソルト・ハッシュ。 |
例
この例では、EMP表内の特定のレコードのSAL列およびCOMM列を更新しますが、その間に列データが変更された場合はエラーがスローされます。
declare
l_hash varchar2(4000);
begin
select apex_util.get_hash(apex_t_varchar2 (
empno, sal, comm ))
into l_hash
from emp
where empno = :P1_EMPNO;
if :P1_HASH <> l_hash then
raise_application_error(-20001, 'Somebody already updated SAL/COMM');
end if;
update emp
set sal = :P1_SAL,
comm = :P1_COMM
where empno = :P1_EMPNO;
exception when no_data_found then
raise_application_error(-20001, 'Employee not found');
end;
親トピック: APEX_UTIL