database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41462 게시물 읽기
No. 41462
프로시저 insert 할때 --- Cause: java.sql.SQLException: ORA-00001: 무결성 제약 조건(MELIMS.PK_DRAFT)에 위배됩니다 ORA-06512: 에러가 납니다.
작성자
김기훈
작성일
2017-09-22 11:36:24
조회수
1,285

아래와 같은 프로시저입니다.  ORA-00001 : 무결성 제약 조건(MELIMS.PK_DRAFT)  위배가 나오는데요. 

시퀀스값을 불러오면서 자꾸 에러가 납니다. 아래쪽 빨간 부분으로 체크한  부분인데요.

이런거 해결 방법은 없나요?

디비 툴은 Oracle_SQL_Developer 입니다. 

 

질문1:  프로시저가 잘 돌아가고 있는지 이클립스 디버그처럼 디버깅 할수 있는 방법이 없는지요?

 

질문2 프로시저 돌면서 변수 값에 뭐가 들어갔는지 값을 볼수 있는 방법이 없는지요?

 

질문3 프로시저나 오라클 쿼리가 돌고나면 Oracle_SQL_Developer 안에서나 어딘가에서 log 파일을 남길 수 있는지요? 방법이 있다면 조언 좀 부탁드립니다.

 

 

 

    V_DML VARCHAR2,    

    V_INPARAMS VARCHAR2,    

    V_ELSEINFO VARCHAR2,    

    V_USER_ID VARCHAR2,    

    V_OUTPUT1 OUT VARCHAR2, -- 카운트    

    V_OUTPUT2 OUT VARCHAR2, -- 반환값    

    V_OUTPUT3 OUT VARCHAR2 -- 에러메시지    

)     

IS    

    CNT NUMBER(10);    

    CODE NUMBER(10);    

    PROC CHAR(8);    

    SPLIT_INFO_CNT NUMBER(10); -- V_ELSEINFO 카운트    

    SIGN_MAN_CNT NUMBER(10); -- 기안자 수     

    SPLIT_INFO VARCHAR2(2000);    

    SPLIT_PARAMS VARCHAR2(2000);    

     REQUESTNO_ CHAR(12);    

    

    

BEGIN    

    

IF (V_DML = '기안') THEN    

BEGIN        

    INSERT INTO DRAFT(DRAFT_CODE, DRAFT_TITLE, DRAFT_MAN, DRAFT_DAY, DRAFT_MAN_COMMENT, DRAFT_PROCESS, SYSMUSER, SYSMDATE)    

    VALUES (    

        SEQ_DRAFT.NEXTVAL,    

        SF_SPLITDATA(V_ELSEINFO, '|', 1),    

        SF_SPLITDATA(V_ELSEINFO, '|', 2),    

        SYSDATE,    

        SF_SPLITDATA(V_ELSEINFO, '|', 3),    

        SF_SPLITDATA(V_ELSEINFO, '|', 4),    

        V_USER_ID,    

        SYSDATE    

    );    

    

    CODE := SEQ_DRAFT.CURRVAL;    

    

    SPLIT_INFO_CNT := 0;    

    

    CNT := SF_SPLITDATA(V_ELSEINFO, '|', 0);    

    

    WHILE SPLIT_INFO_CNT < CNT LOOP    

    BEGIN    

    

        SPLIT_INFO := SF_SPLITDATA(V_INPARAMS, '[\T]', SPLIT_INFO_CNT);    

    

        INSERT INTO DRAFT_FLOW(DRAFT_CODE, SEQ, SIGN_ID, SIGN_DAY, STATUS, SYSMUSER, SYSMDATE)    

        VALUES(    

            CODE,        

            SPLIT_INFO_CNT + 1,            

            SF_SPLITDATA(SPLIT_INFO, '|', 0),    

            SYSDATE,    

            SF_SPLITDATA(SPLIT_INFO, '|', 1),    

            V_USER_ID,    

            SYSDATE    

        )    ;    

    

        SPLIT_INFO_CNT := SPLIT_INFO_CNT + 1;    

    END;    

 

[Top]
No.
제목
작성자
작성일
조회
41465gorup 질문 입니다. [1]
봉달이
2017-10-10
926
41464데이터 합계 처리 문의 드립니다. [4]
김태경
2017-09-29
1234
41463redo log 관련 질문입니다
goblin
2017-09-26
996
41462프로시저 insert 할때 --- Cause: java.sql.SQLException: ORA-00001: 무결성 제약 조건(MELIMS.PK_DRAFT)에 위배됩니다 ORA-06512: 에러가 납니다.
김기훈
2017-09-22
1285
41461global temp 응답없음 [1]
응답없음
2017-09-19
1129
41459제가 처음으로 계정을 unlock하는데 안됩니다. [1]
김현준
2017-09-17
1130
41458오라클 group by 후 count 사용 시 문제입니다. [2]
오라클
2017-09-06
1529
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2018 DSN, All rights reserved.
작업시간: 0.066초, 이곳 서비스는
	PostgreSQL v10.4로 자료를 관리합니다