Embedded SQL for C +
1 VARCHAR
오라클 Pro*C의 VARCHAR 자료형은 프리컴파일 이후 두 개의 요소, 즉 unsigned short len 과 unsigned char arr[size]로 나뉘어진다.
인포믹스에서는 VARCHAR 형은 C의 CHAR와 동일하다.
오라클 |
|
VARCHAR vName[40]; strcpy(vName.arr, “Company Name”); vName.len = strlen(vName.arr); |
VARCHAR vName[40]; |
2 Host Variables
오라클의 EXEC SQL TYPE은 C언어의 typedef 와 같다.
데이터 형에 따라 호스트 변수의 포맷을 변경할 필요가 있을 수 있다.
예를 들어 number나 date같은 자료형은 인포믹스에서 동일한 포맷으로 지원되지 않으므로 SQL문장안에서 포맷을 정의하는 절차를 거쳐야 한다.
비슷한 방식으로 인포믹스는 7.3 버전 이후 TO_DATE와 TO_CHAR 함수를 추가하였다.
또한 ESQL/C에서는 오라클의 날짜 포맷에 대응하여 인포믹스 날짜 포맷을 출력하는
ifx_to_gl_datetime() 함수를 가지고 있다.
TO_CHAR(source_date, fmt) |
날짜형값을 지정한 포맷에 따라 문자열로 변환하여 리턴한다 |
TO_DATE(source_string, fmt) 문자열값을 지정한 포맷에 따라 날짜형으로 변환한다 포맷을 지정하지 않으면 클라이언트 환경에 의한 default 포맷을 사용한다
+ 날짜 및 시간 함수 (Date and Time Functions ) +
오라클 인포믹스 함수 자료형 함수 자료형 SYSDATE Date TODAY Date SYSDATE Timestamp CURRENT YEAR TO FRACTION(digit) datetime SYSDATE Times CURRENT HOUR TO FRACTION (interval) interval
SQL문으로 현재 시스템 날짜를 얻기 위하여 SELECT DISTINCT TODAY
FROM SYSTABLES 와 같이 사용한다. 또한 ESQL/COBOL의 ECO_TDY()함수나
ESQL/C의 rfmtdate()함수에서도 제공된다.
인포믹스의 날짜 처리 형태로 변환해야할 오라클 함수
· ADD_MONTHS(date,months),
· LAST_DAY(date)
· MONTHS_BETWEEN(date1, date2)
· NEW_TIME(date,current_timezone,new_timezone)
· NEXT_DAY(date,char)
· ROUND(date,format)
· SYSDATE
· TRUNC(date,format)