pro*C 에서 자료형 NUMBER(15) 인 데이타 검색할 경우 호스트 변
글쓴이: black0328 / 작성시간: 월, 2004/05/03 - 11:07오전
DB 의 자료형이 NUMBER(15) 인 경우
호스트 변수를 이렇게 int 형으로 선언하고
EXEC SQL BEGIN DECLARE SECTION;
int quota_value;
EXEC SQL END DECLARE SECTION;
EXEC SQL SELECT quota INTO : quota_values FROM QUOTA 를 실행시켰더니
에러가 발생하였습니다. ( double 형도 마찬가지 에러 발생 )
ORA-01455: converting column overflows integer datatype
호스트 변수를
char quota_value[ 100 ];
으로 선언하고 실행시켰더니 제대로 값이 잘나오더라구요...
혹시 오라클에서 호스트 변수 데이타 형으로 unsigned long long ( 64bit 의 8byte ) 은 존재하지 않는지 알고 싶습니다.
만약 존재 하지 않는다면 char 형으로 변환하지 않고 다른 방법이 있는지 알고 싶습니다.
Forums:
Re: pro*C 에서 자료형 NUMBER(15) 인 데이타 검색할 경우 호스
64비트 정수형이 존재하긴 합니다.
제가 Pro*C를 해보지 않아서 뭐라고 확답드리긴 곤란하지만 제가 아는선에서
말씀 드리죠. ^^
리눅스일 경우에는 long long int big; 이렇게 선언해서 사용하고,
OS 가 윈도우일 경우에는 __int64 bign; 로 선언하면 됍니다.
근데 C 라이브러는 64비트 정수형이 제데로 지원이 안되는듯 합니다.
출력하실 때는
리눅스에서는 printf("%lld", big); 이렇게 앞에 ll을 붙여줘야 제데로 출력되고
윈도우에서는 printf("%I64d", big); 이런식으로 출력을 해야 합니다.
그런데 포맷 스트링의 형식은 표준이 명확하지 않은건가요? 아님
64비트 정수형이 표준에 없는 건가요?
대개 다른 포맷은 윈도우나 리눅스나 같은데 유독 64 비트 정수형만 다른게
이상합니다. ^^
그럼 도움이 돼셨길 바랍니다.
댓글 달기