프로시져 에러 입니다 봐주세요 0 2 2,685

by 헨씀히포 [PL/SQL] 프로시저 [2012.03.15 14:05:45]



아래와 같이 했는데 오류가 낫다고 하면서 등록이 올바로 안됩니다
어디가 잘못됏는지 좀 봐주세요
부탁드리겠습니다
================================================
CREATE OR REPLACE PROCEDURE HIPPO.sp_test3 ( as_empno IN VARCHAR2,
  as_emp_name  IN VARCHAR2,
  as_result  OUT VARCHAR2)
IS
 s_msg   VARCHAR2(50) := '성공';
BEGIN
 INSERT INTO hippo.PERSONNEL(empno, emp_name) VALUE(an_empno, as_emp_name);
    IF sql%ROWCOUNT = 1 THEN
     COMMIT;
    ELSE
    ROLLBACK;
    s_msg  := '입력되지 않았습니다.';
    END IF
    as_result := s_msg;
END;

DECLARE
 s_result  VARCHAR2(50) := '';
BEGIN
 sp_test3('TEST5','TEST5', s_result);
    DBMS_OUTPUT.put_line('======================================================');
    DBMS_OUTPUT.put_line('= 실행결과 : ' || s_result);
    DBMS_OUTPUT.put_line('======================================================');
END;

by 마농 [2012.03.15 14:27:50]
일단 변수명이 불일치 하네요.
as_empno
an_empno

Insert 구문의 에러여부는 Sql%RowCount 로 체크 안됩니다.
1건 나오면 정상이지만 에러의 경우엔 0건이 아니라 에러가 나버리지요.
에러상황 발생시 처리는 Exception 구문에서 해주세요.

by 헨씀히포 [2012.03.15 20:04:27]

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