0
orad에 대한 테이블의 업데이트 명령에 select를 수행하여 해당 테이블에 잠금을 설정합니다.orad에 대한 테이블의 잠금 해제
어떻게이 잠금을 해제 할 수 있습니까? (저는 DBA에 액세스 할 수 없습니다).
커밋을하면 자동으로 해당 잠금이 해제됩니까?
orad에 대한 테이블의 업데이트 명령에 select를 수행하여 해당 테이블에 잠금을 설정합니다.orad에 대한 테이블의 잠금 해제
어떻게이 잠금을 해제 할 수 있습니까? (저는 DBA에 액세스 할 수 없습니다).
커밋을하면 자동으로 해당 잠금이 해제됩니까?
예, COMMIT
또는 ROLLBACK
중 하나가 잠금을 해제합니다.
ROLLBACK
을 발행 한 후에도 테이블이 여전히 잠겨 있다면 이 아니며이 잠겨 있습니다. 누가 내가 누구를 기다리고 있는지 확인하기 위해 사용하는 쿼리입니다. 이 작업을 수행하는 데는 여러 가지 방법이 있지만이 방법은 저에게 효과적입니다.
SELECT s.SID,
s.serial#,
s.blocking_session,
s.final_blocking_session,
s.event,
s.module,
s.action,
s.sql_id,
o.NAME locked_object,
-- This is commented out because sometimes you'll get an invalid row id. So I only put it in when I need it
-- CASE
-- WHEN s.row_wait_obj# <> -1 THEN DBMS_ROWID.rowid_create (1,
-- s.row_wait_obj#,
-- s.row_wait_file#,
-- s.row_wait_block#,
-- s.row_wait_row#)
-- ELSE NULL
-- END locked_row_id,
s.wait_class,
s.seconds_in_wait,
s.state,
s.osuser,
s.client_identifier,
sq.sql_text,
sq.sql_fulltext
FROM v$session s,
SYS.obj$ o,
v$sql sq
WHERE ( blocking_session IS NOT NULL
OR SID IN (SELECT blocking_session
FROM v$session))
AND o.obj#(+) = s.row_wait_obj#
and sq.sql_id = s.sql_id
실제로 커밋 및 롤백을 시도했지만 .. 해당 테이블에서 해당 잠금을 죽이지는 않았습니다. 내가 선택을 실행했기 때문에 그것이있을 수 ... 업데이트 ...하지만 실제로 레코드를 업데이 트하지 ...? – psj01
그게 이상한 .. 왜냐하면 난 여전히 롤백 후에도 자물쇠가 있었기 때문에. 나는 세션 브라우저를 사용했고 자물쇠 탭에서 내 이름 아래에 자물쇠를 걸 수있었습니다. 하나는 DHL 잠금 (ROW-X (SX)이고 다른 하나는 Transcaction (독점)이었습니다. 소유자의 말에 의하면 WMSADMIN (나는 관리자 권한이 없습니다) – psj01
소유자가 누구인지 .. 그들은 커밋/롤백을해야합니다. ... – psj01