블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
10-04 08:24
 

달력

« » 2024.10
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
 

최근에 올라온 글

최근에 달린 댓글


원래 오라클이랑은 별로 안 친해서 프로시저에 대해 잘 몰랐는데, 프로젝트 진행 중에 레거시의 요구사행 때문에 SYS_REFCURSOR 사용법을 알게되었습니다.


[프로시저]

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18
19

CREATE OR REPLACE PROCEDURE TEST.SP_OUT_CURSOR_EXAMPLE (

  V_PARAM IN VARCHAR2,
  V_OUT
OUT SYS_REFCURSOR)

IS

BEGIN

 

OPEN V_OUT FOR

SELECT

  'TEST' AS "제목",

  V_PARAM AS "내용"

FROM DUAL;

 

EXCEPTION

WHEN NO_DATA_FOUND THEN

 NULL;

WHEN OTHERS THEN

 RAISE;

END SP_OUT_CURSOR_EXAMPLE;

GO


03 라인에 보면 "OUT SYS_REFCURSOR" 라는 타입으로 정의되어 있습니다. 결과값을 담는 파라미터에 CURSOR 를 넘기는 것으로 생각하면 될 것 같습니다.

08~11 라인까지 자신이 넘기고 싶은 쿼리를 정의하여 07 라인을 통해 V_OUT 에 담습니다.

토드에서 아래와 같은 쿼리를 실행하여 위의 프로시저가 정상적으로 생성이 되었는지 확인합니다.
exec SP_OUT_CURSOR_EXAMPLE( 'param1', :C );


실행을 하게되면 변수에 대해 어떤 타입인지 선택을 하는 창이 뜹니다. Type을 Cursor로 선택하고 "OK"를 누릅니다.


아래와 같이 결과가 나오면 정상적으로 된 것입니다.



함수의 결과 값으로 SYS_REFCURSOR 를 넘길 수도 있다고 하니 알아두면 좋은 것 같습니다.




Posted by 자수씨
, |

정리용으로 작성합니다.
설치환경: Windows 7


1. 오라클 인스턴트 클라이언트 다운로드
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
위 사이트에서 Instant Client Downloads 를 다운로드 받습니다.
제가 받을 때 최신버전은 Version 11.2.0.1.0 입니다.

Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications
 instantclient-basic-win32-11.2.0.1.0.zip (51,458,190 bytes)

다운받은 파일을 적당한 위치에 압축을 해제합니다.
(이번 포스팅에서는 C:\instantclient 에 압축 해제)


2. 환경변수 설정
환경 변수의 시스템 변수에 아래를 추가합니다.
TNS_ADMIN: C:\instantclient
Path: [기존 Path];%TNS_ADMIN% 
LNS_LANG: KOREAN_KOREA.KO16MSWIN949


3. tnsnames.ora 파일 설정
오라클 접속 정보를 가지고 있는 tnsnames.ora 파일을 설정합니다.
(%TNS_ADMIN% 경로에 새로 생성하여 넣어줍니다.)
TEST1 =
  (DESCRIPTION_LIST=
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.8)(PORT = 1521))
      )                                                               
    (CONNECT_DATA =
      (SID = TESTDB1)
    )
  )
)
TEST2 =
  (DESCRIPTION_LIST=
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.9)(PORT = 1521))
      )                                                               
    (CONNECT_DATA =
      (SID = TESTDB2)
    )
  )
)

위와 같이 설정을 하면 TEST1, TEST2 가 추가되며 IP와 SID는 보이는 대로 설정을 할 수 있습니다.


4. 토드 실행
TNS 탭에서 Database를 선택하고 user,password 를 설정하고 접속 버튼을 통해 데이터베이스에 접속을 할 수 있습니다.
Installed Clients 에 아까 처음에 내려받은 Instant Client - 11.2.0.1.0 이 보이네요~




이상 끝~



Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백