반응형
소수(s,p) 또는 숫자(s,p)?
최근 db2 -> oracle 마이그레이션 프로젝트를 진행하던 중에 이러한 상황을 접했습니다.개발자들이 실수로 십진수(s,p) 열을 사용하여 새 테이블 구조를 만들고 있었습니다.Oracle이 이를 지원하는 것을 기억하지 못했지만, 몇 가지 조사를 통해 ANSI 데이터 유형이 Oracle에 의해 지원된다는 것을 알 수 있었습니다.
하지만, 나에게 남은 질문은 -
- 이 데이터는 내부적으로 어떻게 처리됩니까?
- Oracle의 기본 제공 유형 대신 ANSI 유형을 사용하면 비용이 발생합니까?
- 대상 유형이 Oracle 기본 제공 유형인 경우 데이터 마이그레이션 중에 영향이 있습니까?
Oracle에서는 다음과 같이 동일합니다.
테이블과 클러스터를 만드는 SQL 문은 IBM 제품 SQL/DS 및 DB2의 ANSI 데이터 유형과 데이터 유형을 사용할 수도 있습니다.오라클은 오라클 데이터베이스 데이터 유형 이름과 다른 ANSI 또는 IBM 데이터 유형 이름을 인식합니다.데이터 유형을 동등한 오라클 데이터 유형으로 변환하고, 열 데이터 유형의 이름으로 오라클 데이터 유형을 기록하며, 다음 표에 표시된 변환을 기반으로 열 데이터를 오라클 데이터 유형에 저장합니다.
이 인용문 아래의 표는 다음을 보여줍니다.DECIMAL(p,s)
내부적으로 A로 처리됩니다.NUMBER(p,s)
:
SQL> create table t (a decimal(*,5), b number (*, 5));
Table created
SQL> desc t;
Name Type Nullable Default Comments
---- ----------- -------- ------- --------
A NUMBER(*,5) Y
B NUMBER(*,5) Y
그러나 스케일은 기본적으로 0으로 설정됩니다.DECIMAL
즉,DECIMAL(*)
로 처리됩니다.NUMBER(*, 0)
,예.INTEGER
:
SQL> create table t (a decimal, b number, c decimal (5), d decimal (5));
Table created
SQL> desc t;
Name Type Nullable Default Comments
---- --------- -------- ------- --------
A INTEGER Y
B NUMBER Y
C NUMBER(5) Y
D NUMBER(5) Y
사실, 십진수와 숫자 사이에는 차이가 있습니다.10진수는 과도한 크기의 값을 잘라내고 숫자는 값을 반올림합니다.
언급URL : https://stackoverflow.com/questions/11031409/decimals-p-or-numbers-p
반응형
'programing' 카테고리의 다른 글
통계 모드를 찾는 방법은 무엇입니까? (0) | 2023.06.26 |
---|---|
각 행에 대해 가장 큰 값의 열 이름을 반환합니다. (0) | 2023.06.26 |
Unit-Testing의 assertRaises()를 NoneType 객체와 함께 적절하게 사용하는 방법 (0) | 2023.06.26 |
어떤 숫자가 다른 숫자로 구분되는지 어떻게 확인합니까? (0) | 2023.06.21 |
체크아웃을 취소하려면 어떻게 해야 합니까? (0) | 2023.06.21 |