본문 바로가기
오라클 게시판/오라클 함수

[오라클 SQL 함수] TO_BINARY_DOUBLE 함수

by 기서무나구물 2021. 10. 21.

 

TO_BINARY_DOUBLE

 


문법

 

to_binary_double::=

 


목적 

TO_BINARY_DOUBLE함수는 지정한 인수를 BINARY_DOUBLE 타입의 값으로 변환하여 복수 정밀도 부동 소수점 수(double-precision floating-point number)를 반환한다.

  • 인수 expr은 문자열 또는 NUMBER, BINARY_FLOAT, BINARY_DOUBLE 형태의 수치 값을 지정할 수 있다. 만약 expr이 BINARY_DOUBLE이라면, 함수는 expr을 반환한다.
  • expr이 문자열 인경우에만, 옵션 'fmt'와 'nlsparam'인수는 유효하다. 이런 인수는 TO_CHAR(수치) 함수와 같은 목적으로 사용된다.
    • 대소문자를 구별하지 않는 'INF'는 양의 무한대로 변환된다.
    • 대소문자를 구별하지 않는 '-INF'는 음의 무한대로 변환된다.
    • 대소문자를 구별하지 않는 'NaN'은 NaN(비수치)으로 변환된다.

expr문자열에는 부동소수점 수 포맷 요소(F, f, D, d)는 사용할 수 없다.

문자열 또는 NUMBER로부터 BINARY_DOUBLE로 변환은 부정확할 수 있다. 그 이유는 NUMBER와 문자 형태는 수치 값을 표현하기 위하여 십진수 정밀도를 이용하고, BINARY_DOUBLE는 이진수 정밀도를 이용한다.

BINARY_FLOAT를 BINARY_DOUBLE로 변환은 정확히 수행된다.

 


예제

다음 예제는 각각 다른 수치 데이터형의 3개의 열을 가지는 테이블을 사용한다.

Oracle Program
CREATE TABLE float_point_demo
  (dec_num NUMBER(10,2), bin_double BINARY_DOUBLE, bin_float BINARY_FLOAT);

INSERT INTO float_point_demo
  VALUES (1234.56,1234.56,1234.56);

SELECT * FROM float_point_demo;

 

Results
   DEC_NUM BIN_DOUBLE  BIN_FLOAT
---------- ---------- ----------
   1234.56 1.235E+003 1.235E+003

 


다음 예제는 NUMBER 데이터형의 값을 BINARY_DOUBLE의 값으로 변환한다.

Oracle Program
SELECT dec_num, TO_BINARY_DOUBLE(dec_num)
  FROM float_point_demo;

 

Results
   DEC_NUM TO_BINARY_DOUBLE(DEC_NUM)
---------- -------------------------
   1234.56                1.235E+003

 


다음 예제는 dec_num과 bin_double열로부터 추출된 dump 정보를 비교한다.

Oracle Program
SELECT DUMP(dec_num) "Decimal",
   DUMP(bin_double) "Double"
   FROM float_point_demo;
Results
Decimal                     Double
--------------------------- ---------------------------------------------
Typ=2 Len=4: 194,13,35,57   Typ=101 Len=8: 192,147,74,61,112,163,215,10

 


오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

 

[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
반응형

댓글