Oracle SQL Developer를 처음 사용하면서 프로시져를 생성하고 그에 맞는 out 결과를 보고 싶은데 프로시져를 실행하면 자꾸 "PL/SQL 프로시저가 성공적으로 완료되었습니다." 문구만 나오고 결과는 보여 주지 않는다.
또다시 엄청난 삽질과 검색으로 해결하였다.
create or replace PROCEDURE SP_BILLING_TEMP_INSERT
(
P_BILLING_TEMP_GROUP_ID VARCHAR2, /* 청구 임시 테이블 그룹 키*/
V_P_BILLING_TEMP_ID OUT VARCHAR2 /* 리턴 키 */
) IS
BEGIN
-- 리턴 값 셋팅
IF (P_BILLING_TEMP_ID IS NULL) THEN
V_P_BILLING_TEMP_ID := LPAD(P_BILLING_TEMP_SEQ.nextval, 10, '0');
ELSE
V_P_BILLING_TEMP_ID := P_BILLING_TEMP_ID;
END IF;
COMMIT;
END SP_BILLING_TEMP_INSERT;
요런 간단한 프로시져를 생성하고
SET serveroutput on;
DECLARE
V_P_BILLING_TEMP_ID VARCHAR2(20) := 'A';
BEGIN
SP_BILLING_TEMP_INSERT('', V_P_BILLING_TEMP_ID);
DBMS_OUTPUT.PUT_LINE('V_P_BILLING_TEMP_ID: ' || V_P_BILLING_TEMP_ID);
END;
요렇게 호출하면
PL/SQL 프로시저가 성공적으로 완료되었습니다.
V_P_BILLING_TEMP_ID: 0000000015
요렇게 원하는 결과를 얻을 수 있다.
모르니 엄청난 시간과 노력이 필요하다...ㅠ
'IT > 오라클' 카테고리의 다른 글
결과가 없을 때 변수에 null 이라도 대입하기 (0) | 2018.05.15 |
---|---|
트리 메뉴 검색 (0) | 2018.05.04 |
테이블 생성 및 설명 쿼리 (0) | 2018.05.02 |
테이블 칼럼, 타입, 설명 조회 (0) | 2016.02.01 |