프로시저 내부에서 commit 안한 데이터 조회 가능여부 0 4 170

by 미친감자 [Oracle 기초] [2021.11.25 18:22:00]


안녕하세요

프로시져를 짰는데, 개발에서는 잘 돌던 아이가, 운영으로 가니 오작동을 하네요;;

동일 프로시저내에서 INSERT 한 데이터를 커밋하지 않고, 같은 프로시저에서 SELECT 하면, SELECT가 안되나요?

동일 프로시저 내에서 INSERT 한 데이터는 커밋하지 않아도 같은 프로시저내에서는 바로 SELECT가 되는걸로 알고 있었거든요;;

개발에서는 잘되더니, 운영에서는 잘안되는 것이 저 문제인가 싶어서요 (운영에서 PK DUP 에러가 나서요;;)

 

프로시저 내용은 다음과 같습니다.

1. INSERT INTO A_TABLE

2. SELECT A_RESULT FROM A_TABLE WHERE ID = '1';

3.  2번에 데이터가 있으면 B_TABLE에 데이터를 넣지않고, 2번에 데이터가 없으면 B_TABLE에 데이터를 넣습니다.

 

조언 부탁드립니다

감사합니다

 

 

by 모래가흙흙 [2021.11.26 12:58:14]

운영에서만 중복 KEY를 넣은게 아닐까요? 잘 확인해보셔용 ㅎㅎ


by 미친감자 [2021.11.26 14:02:37]

^^;; 아닌데요;;


by 축구쟁이 [2021.11.26 14:11:34]

중복 발생하는 key 값을 확인해보셨어요?

B_TABLE 테이블에 이미 존재하는 key값이 있었던 건가요? 아님 프로시저 실행 중에 중복 key가 발생한 건가요?


by 마농 [2021.11.26 14:29:54]

우선 장담은 버리시고 의심을 하셔야 합니다.
- pk-dup 에러가 나는데도 키중복은 아니라고 장담하시면 안됩니다.
- 에러메시지를 그대로 받아들이고 왜 그런 에러가 나는지 검토하셔야 합니다.
스스로 해결하셔야 합니다.
- 질문의 내용만으로는 실제 소스나 자료를 모르는 상태에서는 답변이 어렵습니다.
- 로직에 문제가 없는지 검토하셔야 하고
- 디버깅 하면서 오류를 찾으셔야 합니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입