pls_integer와 binary_integer의 차이점은 무엇입니까?
추가 작업의 기반이 될 몇 가지 코드를 상속받았습니다.저장된 프로를 보니 연상 배열이 꽤 많네요
이 중 일부는 binary_integers에 의해 인덱싱되고 일부는 pls_integers에 의해 인덱싱됩니다.둘 사이에 어떤 차이점이 있나요?
문서를 봤는데, 이 줄 말고는:
PL/SQL 데이터 유형
PLS_INTEGER
그리고.BINARY_INTEGER
동일합니다.간단하게 하기 위해 이 문서에서는 PLS_INTEGER를 사용하여PLS_INTEGER
그리고.BINARY_INTEGER
.
나는 그 둘의 차이를 찾을 수 없었다.그럼 뭐가 다른데?둘 다 이력/호환성 이유로 사용됩니까?
Oracle 10gR2 사용 중
8i 및 9i에서는 PLS_INTEGER가 BINARY보다 현저하게 빨랐습니다.정수
정수를 선언하고 조작하는 경우 Oracle은 다음과 같은 다양한 옵션을 제공합니다.
INTEGER - NUMBER의 하위 유형으로 정의된 이 데이터 유형은 완전히 플랫폼에 의존하지 않는 방식으로 구현됩니다. 즉, NUMBER 또는 INTEGER 변수를 사용하여 수행하는 모든 작업은 데이터베이스가 설치된 하드웨어에 관계없이 동일하게 작동합니다.
BINARY_INTEGER - STANDARD 패키지에서 INTEGER의 하위 유형으로 정의됩니다. 변수는 BINARY_로 선언됩니다.INTEGER는 -231+1 사이의 값을 할당할 수 있습니다.2-131, 일명 -2,196,483,647에서 2,196,483,647까지.Oracle9i Database Release 2, BINARY보다 이전 버전INTEGER는 다음과 같이 연관 배열(일명 인덱스 기준 테이블)에 허용되는 유일한 인덱스 데이터 유형이었습니다.
TYPE my_array_t IS TABLE OF VARCHAR2(100)
INDEX BY BINARY_INTEGER
PLS_INTEGER - STANDARD 패키지에 BINARY_의 서브타입으로 정의되어 있습니다.INTEGER. PLS_INTEGER로 선언된 변수에는 -231+1 사이의 값을 할당할 수 있습니다.2-131, 일명 -2,196,483,647에서 2,196,483,647까지.PLS_INTEGER 연산은 기계 연산을 사용하기 때문에 일반적으로 NUMBER 및 INTEGER 연산보다 빠릅니다.또한 Oracle Database 10g 이전 버전에서는 BINARY보다 빠릅니다.정수단, Oracle Database 10g에서는 BINARY_INTEGER와 PLS_INTEGER는 현재 동일하며 서로 교환하여 사용할 수 있습니다.
binary_integer
그리고.pls_integer
둘 다 똑같아요.둘 다 -2,147,648,467 ~2,147,648,467 범위의 PL/SQL 데이터형입니다.
integer
★★★★★★★★★★★★★★★★★」binary_integer
pls_integer
배설 속도가 매우 빠릅니다. ★★★★★★★★★★★★★★★★★★pls_intger
과 「기동」으로 합니다.binary_integer
도관관산산산연연하하
pls_integer
10g에서 합니다.
binary_integer
에서는 oracle9i보다 앞의 연관 배열의 정수를 인덱싱할 수 있습니다.
명확한 예:
SET TIMING ON
declare
num integer := 0;
incr integer := 1;
limit integer := 100000000;
begin
while num < limit loop
num := num + incr;
end loop;
end;
PL/SQL procedure successfully completed.
Elapsed: 00:00:20.23
ex:2
declare
num binary_integer := 0;
incr binary_integer := 1;
limit binary_integer := 100000000;
begin
while num < limit loop
num := num + incr;
end loop;
end;
/
PL/SQL procedure successfully completed.
Elapsed: 00:00:05.81
ex:3
declare
num pls_integer := 0;
incr pls_integer := 1;
limit pls_integer := 100000000;
begin
while num < limit loop
num := num + incr;
end loop;
end;
/
pls_integer와 binary_integer의 또 다른 차이점은 pls_integer와 관련된 계산이 오버플로우일 때 PL/SQL 엔진에 의해 런타임 예외가 발생한다는 것입니다.그러나 binary_integer를 포함하는 계산에서는 오버플로가 발생하더라도 예외가 발생하지 않습니다.
언급URL : https://stackoverflow.com/questions/7412731/whats-the-difference-between-pls-integer-and-binary-integer
'programing' 카테고리의 다른 글
리액트 네이티브에서 스타일의 기본 단위는 무엇입니까? (0) | 2023.02.26 |
---|---|
복합 리터럴은 키 없는 필드를 사용합니다. (0) | 2023.02.26 |
로컬 전략으로 CORS를 사용하여 클라이언트 측 앱을 REST API로 인증 (0) | 2023.02.26 |
Spring HATEOAS에서 "_embedded" 속성을 삭제하는 방법 (0) | 2023.02.18 |
워치를 디바운스 또는 스로틀 할 수 있습니까?워치를 디바운스 또는 스로틀 할 수 있습니까?비스듬히_lodash를 사용하는 JS?비스듬히_lodash를 사용하는 JS? (0) | 2023.02.17 |