sql >> Database >  >> RDS >> Oracle

Wat is het verschil tussen pls_integer en binary_integer?

Historische redenen. Vroeger waren ze anders voor 10g:

Op 8i en 9i was PLS_INTEGER merkbaar sneller dan BINARY_INTEGER.

Als het gaat om het declareren en manipuleren van gehele getallen, biedt Oracle veel opties, waaronder:

INTEGER - gedefinieerd in het STANDARD-pakket als een subtype van NUMBER, dit datatype wordt volledig platformonafhankelijk geïmplementeerd, wat betekent dat alles wat u doet met NUMBER- of INTEGER-variabelen hetzelfde zou moeten werken, ongeacht de hardware waarop de database is geïnstalleerd .

BINARY_INTEGER - gedefinieerd in het STANDARD-pakket als een subtype van INTEGER. Variabelen gedeclareerd als BINARY_INTEGER kunnen waarden worden toegekend tussen -2+1 .. 2-1, oftewel -2.147.483.647 tot 2.147.483.647. Vóór Oracle9i Database Release 2 was BINARY_INTEGER het enige indexeringsgegevenstype dat was toegestaan ​​voor associatieve arrays (ook wel index-by-tabellen genoemd), zoals in:

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

PLS_INTEGER - gedefinieerd in het STANDARD-pakket als een subtype van BINARY_INTEGER. Variabelen gedeclareerd als PLS_INTEGER kunnen waarden worden toegekend tussen -2+1 .. 2-1, oftewel -2.147.483.647 tot 2.147.483.647. PLS_INTEGER-bewerkingen maken gebruik van machineberekeningen, dus ze zijn over het algemeen sneller dan NUMBER- en INTEGER-bewerkingen. Bovendien zijn ze vóór Oracle Database 10g sneller dan BINARY_INTEGER. In Oracle Database 10g zijn BINARY_INTEGER en PLS_INTEGER nu echter identiek en kunnen ze door elkaar worden gebruikt.



  1. Wat is de dubbele tabel in Oracle?

  2. Over SQLite

  3. Hibernate 5:- org.hibernate.MappingException:onbekende entiteit

  4. Hoe krijg ik asynchrone / gebeurtenisgestuurde LISTEN/NOTIFY-ondersteuning in Java met behulp van een Postgres-database?