안녕하세요~ 오라클 처음 써보는데요..
그것도 남이 만든거 디버깅&수정 작업 중이라 맨땅에 헤딩하고 있습니다..ㅠㅠ
지금 한가지 문제를 해결 못하고 있는게..
먼저 쿼리를 보시면
1번 보고서 데이터 생성 쿼리
INSERT INTO [보고서 테이블](REPORT_ID, 그 외 컬럼들..)
VALUES(TN_REPORT_SUPPORT_MNG_SEQ.NEXTVAL, 그 외 값들..)
REPORT_ID는 PK 이고요
이 테이블에 대한 Sequence는 다음과 같이 생성 했습니다.
DROP SEQUENCE UPISUW2.TN_REPORT_SUPPORT_MNG_SEQ;
CREATE SEQUENCE UPISUW2.TN_REPORT_SUPPORT_MNG_SEQ
START WITH 1
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
CACHE 20
NOODER;
2번 보고서 내의 페이지 데이터 생성 쿼리
INSERT INTO [보고서 페이지 테이블](REPORT_PAGE_ID, REPORT_ID, 그 외 컬럼들..)
VALUES(:REPORT_PAGE_ID, TN_REPORT_SUPPORT_MNG_SEQ.CURRVAL, 그 외 컬럼들)
PEPORT_PAGE_ID와 REPORT_ID가 PK 이면서 REPORT_ID는 FK로 되어 있습니다.
프로그램 설명을 드리자면..
저장 버튼을 클릭 하면 먼저 1번 쿼리로 보고서를 생성 하고요..
보고서 내에 사용자가 생성한 페이지 수만큼 loop를 돌아 2번 쿼리를 페이지 마다 한번씩 실행 해서 페이지를 데이터를 생성 합니다.
근데 2페이지를 INSERT 할 때 REPORT_PAGE_ID는 제대로 2번이 들어가는데 다음과 같은 오류가 발생 됩니다.
'ORA-00001: 무결성 제약 조건(UPISUW2.IDX_TN_REPORT_SUPPORT_PAGES_FK)에 위배됩니다'
이 상태에서 데이터를 조회 해보면 보고서 테이블에 한건, 보고서 페이지 테이블에 한건 씩 데이터가 들어 가 있고요
이 상태에서 같은 동작을 한번 더 수행 하면 이번엔 다음과 같은 오류가 발생 합니다.
'ORA-00001: 무결성 제약 조건(UPISUW2.IDX_TN_REPORT_SUPPORT_PAGES_PK)에 위배됩니다'
이 때는 데이터를 조회 해보면 보고서 데이터만 INSERT 되고 보고서 페이지 데이블에는 아무것도 들어가지 않습니다.
MS-SQL 사용할 때는 그냥 PK에 identity만 지정 하고 저런 구조에서 두개의 PK값이 둘다 중복 되지만 않게 해주면 아무 문제 없었는데..
제가 뭔가 설정을 잘 못 한건지 해결책이 잘 찾아지지가 않네요..
답변 부탁드리겠습니다.