본문 바로가기

C-Language/Pro C, SELECT

Pro C, SELECT example

Pro C에서 SELECT 문장 사용 예

표준 SELECT문장과는 달리 Pro C의 SELECT문장은 INTO절을 가지며 INTO절에 Host변수를 나열하여 오라클에서 출력되는 데이터를 저장할 수 있도록 하고 있다.

출력되는 컬럼 수와 Host변수의 수는 일치해야 한다.

질의 결과가 다수개의 레코드를 출력하는 경우라면, 오라클리 출력하는 데이터는 CURSOR에 저장하여야 한다.

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

int main(void) {

 EXEC SQL BEGIN DECLARE SECTION;
     char *connstr = "scott/ojtit@orcl";
     int empno;
     VARCHAR ename[20];
     char hiredate[20];
     char *name = "KING";
 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 = :name;

 ename.arr[ename.len] = '\0';
 
 printf("empno=%d, ename=%s, hiredate=%s \n", empno, ename.arr, hiredate);
 
 EXEC SQL ROLLBACK WORK RELEASE;

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