sql >> Database teknologi >  >> RDS >> Oracle

Hvad er forskellen mellem pls_integer og binary_integer?

Historiske årsager. De plejede at være forskellige før 10g:

På 8i og 9i var PLS_INTEGER mærkbart hurtigere end BINARY_INTEGER.

Når det kommer til at deklarere og manipulere heltal, tilbyder Oracle masser af muligheder, herunder:

INTEGER - defineret i STANDARD-pakken som en undertype af NUMBER, er denne datatype implementeret på en fuldstændig platform-uafhængig måde, hvilket betyder, at alt, hvad du gør med NUMBER eller INTEGER-variabler, skal fungere på samme måde, uanset hvilken hardware databasen er installeret på .

BINARY_INTEGER - defineret i STANDARD-pakken som en undertype af INTEGER. Variabler, der er erklæret som BINARY_INTEGER, kan tildeles værdier mellem -2+1 .. 2-1, aka -2.147.483.647 til 2.147.483.647. Før Oracle9i Database Release 2 var BINARY_INTEGER den eneste indekseringsdatatype, der var tilladt for associative arrays (alias, index-by-tabeller), som i:

  TYPE my_array_t IS TABLE OF VARCHAR2(100) 
  INDEX BY BINARY_INTEGER

PLS_INTEGER - defineret i STANDARD-pakken som en undertype af BINARY_INTEGER. Variabler, der er erklæret som PLS_INTEGER, kan tildeles værdier mellem -2+1 .. 2-1, aka -2.147.483.647 til 2.147.483.647. PLS_INTEGER operationer bruger maskinaritmetik, så de er generelt hurtigere end NUMBER og INTEGER operationer. Før Oracle Database 10g er de også hurtigere end BINARY_INTEGER. I Oracle Database 10g er BINARY_INTEGER og PLS_INTEGER dog nu identiske og kan bruges i flæng.



  1. Oracle vælg seneste datopost

  2. Forespørg flere NEXTVAL fra sekvens i én sætning

  3. Sådan fungerer INSTR() i MariaDB

  4. Python Postgres psycopg2 ThreadedConnectionPool opbrugt