반응형

프로시저 호출했는데 디버깅해보니 프로시저에 들어가지도않는 이유가 뭔지 한참고민했는데

프로시저에 써준 변수선언 순서가 중요했다;;;;

변수a   자료형,

변수b   자료형

 

이렇게 써줬었는데 

알고보니 변수b가 앞에 와야했던것.... 너무함 ㅠㅠㅠㅠㅠㅠ 이걸로 30분 헤맸다.

 //controller 로 가기전 js 
 
 var paramString = {
                'title':$('#title').val(),
                'content':$('#content').val()
            };
 var url = '/request/deleteContent.do';
            ajaxRequest(url,{ "paramString" : JSON.stringify(paramString)}, function (result) {
                if (result['isSuccess']) location.replace('/request/contentList.do');
                alert(result['message']);
            });
            
//해당 매퍼
    @Delete("CALL CONTENT_DELETE("+
            "#{title, mode=IN, jdbcType=INTEGER, javaType=String}"+
            ",#{content, mode=IN, jdbcType=INTEGER, javaType=String}"+
            ")")
    @Options(statementType = StatementType.CALLABLE)
    void deleteServiceReqFile(Map<String, Object> paramMap);
    
//해당 프로시저 

create PROCEDURE         "CONTENT_DELETE"
(
    /*IN*/
    TITLE                DB명.TITLE_NO%TYPE,
    CONTENT              DB명.CONTENT_NO%TYPE
)
    IS
BEGIN
        DELETE FROM DB명
        WHERE TITLE_NO=TITLE
          AND CONTENT_NO=CONTENT;

EXCEPTION
    WHEN NO_DATA_FOUND THEN
        NULL;
    WHEN OTHERS THEN
        RAISE;
END CONTENT_DELETE;
/

이런식으로 
컨트롤러 부를때 보내는 파라메터 순서 & 매퍼에 기입하는 변수 순서 & 프로시저에 기입한 변수 순서 세가지가 다 맞아야한다.

매퍼는 틀려도되나? 정확히 어디까지가 맞아야하는지모르겠는데 확실한건 프로시저는 변수 순서를 바꿔쓰면 인식을 못한다는점이다 ㅠㅠ

 

또한 무결성제약조건 에러

 

이런식의 창이 뜨는데 어떤자식이 있는지 모를경우 빨간줄 부분을 보면 그 자식의 key 를 상냥하게 설명해준다.

그것도모르고 자식 찾는법 고민하고있었다 흑흑

728x90

+ Recent posts