④ 결과 선택 컬럼 정의
DBMS_SQL에서는 동적 SQL문을 실행한 다음 SELECT 리스트의 컬럼 값을 받아올 수 있는데, 이를 위해서는 가져올 값에 해당하는 컬럼을 미리 정의해야 하며 이 역할을 하는 것이 바로 DEFINE_COLUMN 프로시저다. DEFINE_COLUMN 프로시저 역시 2가지 형태가 있다.
컬럼 타입이 문자형이 아닐 경우
DBMS_SQL.DEFINE_COLUMN (
c IN INTEGER,
position IN INTEGER,
column IN <datatype>);
컬럼 타입이 문자형일 경우
DBMS_SQL.DEFINE_COLUMN (
c IN INTEGER,
position IN INTEGER,
column IN VARCHAR2 CHARACTER SET ANY_CS,
column_size IN INTEGER);
• c: 파싱할 문장에 대한 커서 ID.
• position: SELECT 리스트의 컬럼 위치를 나타내는데 SELECT 키워드를 기준으로 왼쪽부터 1에서 시작. 예를 들어, 세 번째 컬럼일 때는 3.
• column: 컬럼 값을 받을 변수를 명시한다.
• column_size: 문자형 컬럼이면 해당 컬럼의 문자열 길이를 명시한다.