sql >> Databáze >  >> RDS >> Oracle

Jaký je rozdíl mezi pls_integer a binary_integer?

Historické důvody. Před 10g bývaly jiné:

Na 8i a 9i byl PLS_INTEGER znatelně rychlejší než BINARY_INTEGER.

Pokud jde o deklarování a manipulaci s celými čísly, Oracle nabízí spoustu možností, včetně:

INTEGER - definovaný v balíčku STANDARD jako podtyp NUMBER, tento datový typ je implementován zcela nezávisle na platformě, což znamená, že vše, co děláte s proměnnými NUMBER nebo INTEGER, by mělo fungovat stejně bez ohledu na hardware, na kterém je databáze nainstalována. .

BINARY_INTEGER - definováno v balíčku STANDARD jako podtyp INTEGER. Proměnným deklarovaným jako BINARY_INTEGER lze přiřadit hodnoty mezi -2+1 .. 2-1, neboli -2,147,483,647 až 2,147,483,647. Před vydáním databáze Oracle9i 2 byl BINARY_INTEGER jediným indexovacím datovým typem povoleným pro asociativní pole (aka, index-by tables), jako v:

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

PLS_INTEGER - definováno v balíčku STANDARD jako podtyp BINARY_INTEGER. Proměnným deklarovaným jako PLS_INTEGER lze přiřadit hodnoty mezi -2+1 .. 2-1, neboli -2,147,483,647 až 2,147,483,647. Operace PLS_INTEGER používají strojní aritmetiku, takže jsou obecně rychlejší než operace NUMBER a INTEGER. Před verzí Oracle Database 10g jsou také rychlejší než BINARY_INTEGER. V Oracle Database 10g jsou však BINARY_INTEGER a PLS_INTEGER nyní totožné a lze je používat zaměnitelně.



  1. Nelze načíst DLL 'SqlServerSpatial.dll'

  2. Pomocí AT TIME ZONE opravte starý přehled

  3. Jak získat čas vytvoření databáze v PostgreSQL 9.0?

  4. Jak nastavit vzdálené připojení k MySQL