선언한 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;
}