오라클커서 관련 질문입니다... 0 2 3,083

by 대한민국1 [PL/SQL] oracle cursor [2021.03.23 14:53:29]


안녕하세요 프로시저로 오라클 커서를 활용하는 방법으로 개발진행중인데 문제가 발생하였습니다

우선 프로시저의 파라미터로 마지막에 OUT SYS_REFCURSOR를 하여 프로시저의 작성을 시작하고

DML 후 조회하여 cursor에 담은 뒤 c# winform에서 받아서 조회를 할 계획이었습니다.

하지만 ORA-01002: 인출 시퀀스가 틀립니다. 라는 오류가 발생하였습니다...

프로시저의 형태는 다음과같습니다.

PROCEDURE PC_TEST(PARAM1 IN VARCHAR2, PARAM2 IN VARCHAR2, O_CURSOR OUT SYS_REFCURSOR)
IS
    ...
BEGIN

    (DML)

    OPEN O_CURSOR
    FOR
    SELECT ...(DML된 내용)

    ROLLBACK;
END

하고자하는 작업은 "받아온 파라미터로 시뮬레이션 했을 때는 이런결과가 나온다"라는 것이고...

임시테이블이나 테이블로 할 수 없는 상황이어서 위의 코드와 같이 했지만 결과가 이렇게 나와서 참담합니다..

해결방안이나 다른쪽으로 OUTPUT을 뺄 수 있는 방법이 있을까 하여 질문드립니다..

by 마농 [2021.03.23 15:36:09]

DML 처리 했다가 롤백하는 방식은 아닌 듯 합니다.
DML 처리 없이 DML 처리 한 듯 한 결과를 만들어 내는 SELECT 문장을 만드세요.

-- 예) 10번 부서의 급여를 10% 올린 결과 반환
SELECT deptno
     , empno
     , sal * DECODE(deptno, 10, 1.1, 1) AS new_sal
  FROM emp
;

 


by 대한민국1 [2021.03.23 17:03:52]

어쩔수없네요 ㅜㅜ 감사합니다!!!

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