타입을 별도로 선언하는 것도 좋지만 패키지로 선언해서 사용하는 것이 편리하다. PACKAGE TYPES AS /* 범용 커서 */ TYPE CURSORTYPE IS REF CURSOR; /* 정의된 레코드 */ TYPE 정의REC IS RECORD( 컬럼명1 VARCHAR2(50), 컬럼명2 NUMBER(10), 컬럼명3 NUMBER(20), 컬럼명4 NUMBER(5) ); /* 정의 커서 */ TYPE 정의TYPE IS REF CURSOR; RETURN 정의REC; END; 법용적으로 사용되는 커서의 경우 따로 정의할 필요없이 바로 바로 사용이 가능하지만 어떤 정보가 넘어올 지 알 수가 없기 때문에 변수를 선언한 후 받아야 한다. (물론 java 등에서 받을 때는 ResultSet으로 받으면 되지만....
급하게 다른 시스템의 DB서버에서 데이터 목록을 가져와서 활용해야 하는 일이 주어졌다. 보통은 API 를 작성해야 하지만 각 시스템에 API를 작성하여 적용할 시간이 부족한 관계로 DB Link를 통하여 레퍼런스 커서로 데이터를 가져오는 개발을 진행하였기에 그 기록을 남깁니다. 미리 이야기 하지만 이 방식은 절대 절대 추천하지 않습니다. 가장 큰 이유는 각 시스템 DB서버에 영향을 끼칠 가능성이 매우 크기 때문에 위험한 방식입니다. 우선 원격의 대상 DB에 레퍼런스 커서를 리턴해줄 프로시저 생성 합니다. PROCEDURE 프로시저명 ( io_cur IN OUT NUMBER ) IS mySql varchar2(1000) := 'SELECT * FROM TAB'; rcNUMBER; BEGIN io_cur :..
- Total
- Today
- Yesterday