오라클 11->12 프로시저 매개변수 타입 문제? 0 1 1,147

by 뉴초보 [PL/SQL] char pl/sql [2020.09.28 14:19:19]


오라클 11 버전에서 12 버전으로 변경 하였습니다.

이후 프로시저 매개변수 데이터 타입에 따라

프로시저 안에 있는 커서문의 값이 정상적으로 출력되지 않는 부분을 발견 하였습니다.

예시로

CREATE OR REPLACE PROCEDURE "SP_TEST" ( PI_TEST IN CHAR )
IS
    CURSOR CS_TEST IS
        SELECT TEST_COLUMN
        FROM TB_TEST
        WHERE TCL_TEST = PI_DEPT ;
BEGIN
    ...
END

위와 같이 11버전에서는 PI_TEST IN CHAR 형태로 작성하면 커서문에 쿼리를 정상적으로 처리가 됩니다.

하지만 12버전으로 업그레이드 후 정상적으로 처리가 되지 않습니다.

그래서 type 형태로 변경하니 정상적으로 처리가 됩니다.

CREATE OR REPLACE PROCEDURE "SP_TEST" ( PI_TEST IN TB_TEST.TCL_TEST %type )
IS
    CURSOR CS_TEST IS
        SELECT TEST_COLUMN
        FROM TB_TEST
        WHERE TCL_TEST = PI_DEPT ;
BEGIN
    ...
END

혹시 이와 비슷한 경우를 해결하신분이 계실까요?

11에서는 정상적으로 되었으니 DB자체의 설정 부분일것 같은데....구글링해도 답이 나오지 않네요....

답변 부탁드리겠습니다.

감사합니다.

by 뉴초보 [2020.09.28 16:54:30]

해당건 오라클 sql developer 디버그에서 발생된 현상 입니다.

별도의 프로그램에서 호출하니 기존 소스도 정상적으로 호출 되었습니다.

혼선을 드려 대단히 죄송합니다.

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