반응형
MS-SQL 에선 프로시저 만들때 매개변수를 집어넣고 SELECT * FROM EMP 하면 바로 출력이 된다. 하지만 Oracle 은 다르다. 커서를 이용해야 출력값이 2행이상인 값들을 받아올수 있다. 예제를 보자 예제를 보면 간단히 이해 될것이다.
create or replace NONEDITIONABLE PROCEDURE CursorExample (
p_USER_CD VARCHAR2,
c_user IN OUT SYS_REFCURSOR
)
IS
BEGIN
OPEN c_user FOR
SELECT * FROM emp WHERE USER_CD = p_USER_CD;
END;
이렇게 SYS_REFCURSOR를 매개변수로 만들어 주고 SELECT문 위에 Cursor를 열어주면된다.
이것을 실행할떄에는
variable rc refcursor;
EXECUTE emp_by_job ('1001', :rc);
print rc;
여기서 많이 골머리를 썩었다.
MS-SQL 은 프로시저를 실행하면 바로 값이 도출되었는데. 커서를 이용하다보니
1. 변수선언
2. 프로시저 실행
3. 변수에 값을담는다.
4. 출력
이런순서가 된다.
반응형
'데이터베이스 > OracleDB' 카테고리의 다른 글
[OracleDB ] TO_CHAR(number) 사용법 - 숫자표현 양식(format) (0) | 2020.01.20 |
---|---|
[OracleDB] Dual테이블이란? (0) | 2020.01.20 |
[OracleDB 설명] 테이블스페이스 - 1 (0) | 2020.01.17 |
[OracleDB ] SQL Developer 에서 테이블스페이스 생성하기 (0) | 2020.01.17 |
[OracleDB]오라클DB 기초- 1 (계정) (0) | 2020.01.17 |