programing

"NUMBER"와 "NUMBER(*,0)"는 Oracle에서 동일합니까?

telecom 2023. 7. 24. 22:17
반응형

"NUMBER"와 "NUMBER(*,0)"는 Oracle에서 동일합니까?

오라클 문서에는 다음과 같이 언급되어 있습니다.

NUMBER (정밀, 척도)

정밀도가 지정되지 않은 경우 열에는 지정된 대로 값이 저장됩니다.척도가 지정되지 않은 경우 척도는 0입니다.

그렇지만NUMBER(정밀도와 척도 없이) 부동 소수점 숫자(34.30)도 허용하지만, 설명서에 따르면 척도가 지정되지 않으면 기본적으로 0 척도여야 하므로 정수만 허용해야 합니다. 그렇지 않습니까?

그리고 다른 질문에서 언급된 것은

기본 정밀도는 38, 기본 척도는 0입니다.

그렇게NUMBER그리고.NUMBER(*,0)평등해야 하지만 그들은 그렇지 않습니다.

어디가 틀렸습니까?

서류에 있는 문장이

정밀도가 지정되지 않은 경우 열에는 지정된 대로 값이 저장됩니다.척도가 지정되지 않은 경우 척도는 0입니다.

좀 헷갈리네요.정밀도가 지정되고 척도가 지정되지 않은 경우 척도는 0입니다.예를 들어,NUMBER(19)와 동등합니다.NUMBER(19,0).NUMBER38자리의 정밀도를 가지지만 정의된 척도는 없습니다.그래서 열은 다음과 같이 정의됩니다.NUMBER에서는 정밀도가 38자리 이하인 경우 모든 척도의 값을 사용할 수 있습니다(예: 소수점이 있는 38자리 숫자).

정밀도 없이 척도를 지정할 수도 있습니다.NUMBER(*, <scale>)하지만 그것은 단지 38자리의 정확도로 열을 만들기 때문에 특별히 유용한지는 모르겠습니다.

페이지의 척도 요인이 숫자 데이터 저장소에 미치는 영향 가 유용할 수 있습니다.

척도의 기본값은 값이 없는 0이 아닙니다.따라서 다음 사이의 모든 값을 수용할 수 있습니다.-84 to 127이 값을 0으로 제한하면 값에 척도 값이 포함되어 있더라도 어떤 처방도 허용되지 않습니다.

create table aaaaa
(
sno number(*,0),
sno1 number
);

user_tab_columns당신의 정확성과 규모의 가치를 제공할 것입니다.

SQL> select column_name,data_precision,data_scale from user_tab_columns where ta
ble_name = 'AAAAA';

COLUMN_NAME                    DATA_PRECISION DATA_SCALE
------------------------------ -------------- ----------
SNO                                                    0
SNO1

SQL>

아래의 작동 상태를 확인하십시오.

SQL> select * from aaaaa;

no rows selected

SQL> insert into aaaaa values (123.123123,123123.21344);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from aaaaa;

       SNO       SNO1
---------- ----------
       123 123123.213

SQL>

Oracle 설명서의 이 부분에서는 다음과 같이 명확하게 설명합니다.

다음 형식을 사용하여 정수를 지정합니다.

번호(p)

이것은 정밀도가 p 및 스케일이 0인 고정점 번호를 나타내며 NUMBER(p,0)와 같습니다.

그리고.

다음 형식을 사용하여 부동 소수점 번호를 지정합니다.

번호

정밀도 및 척도 지정자가 없으면 Oracle 번호의 최대 범위 및 정밀도가 지정됩니다.

항성 정밀도의 의미는 여기에 문서화되어 있으며 38의 정밀도를 의미합니다.

또 다른 추잡한 사건이 있었는데 제가 마주한 사건은...삽입할 테이블에 트리거가 포함되어 있으면 해당 테이블의 절차 흐름에 무언가를 숫자로 변환하려는 시도가 포함되어 있는지 검토해야 합니다.

언급URL : https://stackoverflow.com/questions/28207708/is-number-and-number-0-the-same-in-oracle

반응형