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;
}