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

strcpy(vName, “Company Name”);

 

2 Host Variables

 

오라클의 EXEC SQL TYPE C언어의 typedef 같다.

 

데이터 형에 따라 호스트 변수의 포맷을 변경할 필요가 있을 있다.

예를 들어 number date같은 자료형은 인포믹스에서 동일한 포맷으로 지원되지 않으므로 SQL문장안에서 포맷을 정의하는 절차를 거쳐야 한다.


예를들어 오라클 함수 TO_CHAR 날짜와 숫자 값의 포맷을 사용한다.
비슷한 방식으로 인포믹스는 7.3 버전 이후 TO_DATE TO_CHAR 함수를 추가하였다.
또한 ESQL/C에서는 오라클의 날짜 포맷에 대응하여 인포믹스 날짜 포맷을 출력하는

ifx_to_gl_datetime() 함수를 가지고 있다.

TO_CHAR(source_date, fmt)

날짜형값을 지정한 포맷에 따라 문자열로 변환하여 리턴한다
포맷을 지정하지 않으면 default date형의 포맷을 사용한다.

TO_DATE(source_string, fmt)

문자열값을 지정한 포맷에 따라 날짜형으로 변환한다

포맷을 지정하지 않으면 클라이언트 환경에

default 포맷을 사용한다


 위의 경우 포맷은 인포믹스에서 제공하는 값을 사용해야하며 오라클의 모든 포맷을 드시 포함하고 있는것은 아니다.

 

+ 날짜 시간 함수 (Date and Time Functions ) +


현재 날짜를 처리하기 위하여 오라클은 SYSDATE 사용하는데, 인포믹스에서는 다음과 같이 자료형에 따라 다르게 표현한다.

 

 

오라클

 

 

인포믹스

 

함수

 

 

자료형

 

함수

 

자료형

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)

Posted by gala
l