본문 바로가기

C-Language/Pro C, Host Variable, out

Pro C, Host Variable Output example

선언한 Host 변수를 이용하여 오라클로부터 가져온 데이터를 저장하는 예

오라클 입장에서는 오라클이 가진 데이터를 Host변수에 출력(Output)하는 입장이다

#include <stdio.h>
#include "sqlca.h"

int main(void) {

 EXEC SQL BEGIN DECLARE SECTION;
  char *connstr = "scott/ojtit@orcl";
  int empno;
  char ename[20];
  char hiredate[20];
 EXEC SQL END DECLARE SECTION;
 
 EXEC SQL CONNECT :connstr;
 
 if(sqlca.sqlcode == 0) {
  printf("오라클 연결 성공\n");
 }else{
  printf("오류 : 오라클 연결 실패\n");
 }
 
 EXEC SQL
    SELECT
                empno,ename,hiredate
    INTO :empno, :ename, :hiredate
    FROM
                EMP
    WHERE
                ename = 'SMITH';

 /* 문자열을 받기 위해서 char[]을 into절에 사용한 경우에는 오라클이 문자열의 끝에 NULL문자를 포함하지 않기 때문에
 *  C언어에서 문자열로 사용하기가 적합하지 않다. 그래서 VARCHAR[]를 사용하여 오라클이 저장한 문자의 길이
 *  도 포함하게 하면 된다 */

 
 printf("strlen(ename)=%d \n", strlen(ename) ); /*배열의 크기 -1 */
 
 printf("empno=%d, ename=%s, hiredate=%s \n", empno, ename, hiredate);
 
 EXEC SQL ROLLBACK WORK RELEASE;

 printf("프로그램 종료\n");
 return 0;
 
}