306:
307: CURSOR cur_get_lock_info
308: IS
309: SELECT a.*
310: FROM EGO_OBJECT_LOCK a
311: WHERE a.object_name = p_object_name
312: AND NVL(a.pk1_value, chr(0)) = NVL(p_pk1_value, chr(0))
313: AND NVL(a.pk2_value, chr(0)) = NVL(p_pk2_value, chr(0))
314: AND NVL(a.pk3_value, chr(0)) = NVL(p_pk3_value, chr(0))
315: AND NVL(a.pk4_value, chr(0)) = NVL(p_pk4_value, chr(0))
316: AND NVL(a.pk5_value, chr(0)) = NVL(p_pk5_value, chr(0))
317: AND a.lock_id = (
318: SELECT max(a.lock_id)
319: FROM EGO_OBJECT_LOCK a
320: WHERE a.object_name = p_object_name
321: AND NVL(a.pk1_value, chr(0)) = NVL(p_pk1_value, chr(0))
322: AND NVL(a.pk2_value, chr(0)) = NVL(p_pk2_value, chr(0))
323: AND NVL(a.pk3_value, chr(0)) = NVL(p_pk3_value, chr(0))
470: IF p_lock_flag THEN
471: ---
472: --- Lock the object
473: ---
474: INSERT INTO EGO_OBJECT_LOCK
475: ( lock_id,
476: object_name,
477: pk1_value,
478: pk2_value,
485: creation_date,
486: last_updated_by,
487: last_update_date,
488: last_update_login)
489: VALUES ( EGO_OBJECT_LOCK_S.NEXTVAL,
490: p_object_name,
491: p_pk1_value,
492: p_pk2_value,
493: p_pk3_value,
503: ELSE
504: ---
505: --- Unlock the object
506: ---
507: UPDATE EGO_OBJECT_LOCK l
508: SET l.lock_flag = 'U'
509: , l.last_updated_by = g_user_id
510: , l.last_update_date = l_sysdate
511: , l.last_update_login = g_login_id
515: AND NVL(l.pk3_value, chr(0)) = NVL(p_pk3_value, chr(0))
516: AND NVL(l.pk4_value, chr(0)) = NVL(p_pk4_value, chr(0))
517: AND NVL(l.pk5_value, chr(0)) = NVL(p_pk5_value, chr(0))
518: AND l.lock_id = ( SELECT max(a.lock_id)
519: FROM EGO_OBJECT_LOCK a
520: WHERE a.object_name = p_object_name
521: AND NVL(a.pk1_value, chr(0)) = NVL(p_pk1_value, chr(0))
522: AND NVL(a.pk2_value, chr(0)) = NVL(p_pk2_value, chr(0))
523: AND NVL(a.pk3_value, chr(0)) = NVL(p_pk3_value, chr(0))