Cursor
[MS-SQL] 프로시저에서 여러 행 데이터를 반환시킬 수 있을까?
MSSQL을 사용하는 프로젝트에서 프로시저의 OUTPUT 매개변수로 여러 데이터, 여러 Row를 반환시킬 수 있는지 확인해야하는 일이 생겨 포스팅한다. 내가 알기로는 프로시저의 OUTPUT 매개변수로 테이블이나 커서를 반환시킬 수 있었는데, JDBC를 통해서 DAO와 Service단으로 값이 전달이 되는지가 중요했다. 우선 CURSOR를 OUTPUT 매개변수로 뱉어내는 프로시저를 작성해보았다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE PROCEDURE SP_RETURN_CURSOR_TEST ( @IN_VALUE NVARCHAR, @OUT_CURSOR CURSOR VARYING OUTPUT ) AS BEGIN SET @OUT_CURSOR = CURSOR FORWAR..
[PL/SQL] 커서(CURSOR) (3) : 커서 변수
[PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서 [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문 [PL/SQL] 커서(CURSOR) (3) : 커서변수 커서 변수특징- 한 개 이상의 쿼리를 연결해 사용할 수 있다. 하나의 커서 변수를 선언해 쿼리를 연결해서 사용한 뒤, 같은 커서 변수를 또 다른 쿼리에 연결해서 사용할 수 있다.- 변수처럼 커서 변수를 함수나 프로시저의 매개변수로 전달할 수 있다.- 커서 속성을 사용할 수 있다. 사용방법1. 커서 변수 선언하기12TYPE 커서_타입명 IS REF CURSOR [ RETURN 반환 타입 ];커서_변수명 커서_타입명;cs 반환타입은 해당 커서가 반환하는 결과 집합을 나타내며 '%ROWTYPE' 속성으로 정의한다.RETU..
[PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문
[PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서 [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문 [PL/SQL] 커서(CURSOR) (3) : 커서변수 커서와 FOR문 기존의 FOR문 형태는 아래와 같다.1234FOR 인덱스 IN 초기값..최종값LOOP 처리문;END LOOP;cs 그런데, 커서를 이용해서 FOR문을 작성하면 아래와 같이 사용할 수 있다.1234FOR 레코드 IN 커서명 (매개변수1, 매개변수2, ...)LOOP 처리문;END LOOP;cs 이때, 레코드는 테이블 로우 전체를 담아둘 수 있는 오라클 데이터 타입 중 하나이다. 예제123456789101112131415DECLARE -- 커서 선언, 매개변수로 부서코드를 받기 CURSOR CUR_EMP..
[PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서
[PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서 [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문 [PL/SQL] 커서(CURSOR) (3) : 커서변수 커서(CURSOR)특정 SQL 문장을 처리한 결과를 담고있는 영역을 가리키는 일종의 포인터로, 커서를 사용하면 처리된 SQL문장의 결과 집합에 접근할 수 있다.(커서선언(명시적커서))-커서열기-패치-커서닫기 3단계로 진행된다. 묵시적 커서오라클 내부에서 자동으로 생성되어 사용하는 커서로, PL/SQL 블록에서 실행하는 문장(INSERT, UPDATE, MERGE, DELETE, SELECT INTO)이 실행될 때마다 자동으로 만들어져 사용된다.개발자 입장에서는 이러한 커서의 동작을 관여할 수는 없지만, 커서 속성을 ..