1
Java 응용 프로그램 로그에서이 오류가 발생했습니다.이 오류는 Java DB 연결 풀을 사용합니다. 누구든지 Oracle 임시 테이블을 사용하기 전에이 문제를 경험 했습니까? 그리고 당신의 해결책은 무엇입니까? 어떤 도움이라도 대단히 감사합니다.ORA-14450 : 이미 사용중인 트랜잭션 임시 테이블에 액세스하려고 시도했습니다.
Java 응용 프로그램 로그에서이 오류가 발생했습니다.이 오류는 Java DB 연결 풀을 사용합니다. 누구든지 Oracle 임시 테이블을 사용하기 전에이 문제를 경험 했습니까? 그리고 당신의 해결책은 무엇입니까? 어떤 도움이라도 대단히 감사합니다.ORA-14450 : 이미 사용중인 트랜잭션 임시 테이블에 액세스하려고 시도했습니다.
연결을 종료하고 다시 시작하십시오. 프로세스가 실행 중인지 확인하려면 아래 코드를 사용하여 실행중인 프로세스를 찾으십시오.
오류 원인 : 동일한 세션의 동시 트랜잭션으로 이미 채워진 트랜잭션 임시 테이블에 액세스하려고했습니다.
조치 : 동시 트랜잭션이 커밋되거나 중단 될 때까지 임시 테이블에 액세스하려고 시도하지 마십시오.
SELECT
o.object_name
, s.sid, s.serial#
, s.username
, s.osuser, s.machine
, 'alter system kill session '''||to_char(s.sid)||','||to_char(s.serial#)||''';' ks
FROM
user_objects o
, v$lock a
, v$session s
WHERE
o.object_name = 'table_name_here'
AND a.id1 = o.object_id
AND a.type = 'TO'
AND a.sid = s.sid
;
해결 방법은 임시 테이블을 사용하는 방법과 작성 방법에 따라 달라질 수 있습니다. 'ON COMMIT PRESERVE ROWS'로 만들었습니까? 그렇다면 전체 세션 동안 실제로 데이터를 보존해야합니까? 트랜잭션의 데이터 만 보유하고있는'ON COMMIT DELETE ROWS'로 작업 할 수 있습니까? 우리에게 더 말해 ... –
임시 테이블은 'ON COMMIT DELETE ROWS'로 작성되었으며 java 응용 프로그램에서 호출 한 pl/sql은 커밋을 발행하여 트랜잭션을 종료합니다. – tpeng