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

Najděte číselný podtyp (smallint, int atd.) v oracle

Datový typ SMALLINT a INT jsou pouze standardní typy ANSI/ISO, které v Oracle jsou aliasy pro NUMBER(38) a BIGINT datový typ neexistuje.

Pokud chcete uložit 2bajtové, 4bajtové a 8bajtové hodnoty, můžete použít kombinaci vhodně velkých NUMBER sloupce a kontrola omezení, aby se zajistilo, že data jsou v požadovaných mezích:

CREATE TABLE table_name (
  small  NUMBER( 5,0) CHECK ( small  BETWEEN -POWER(2,15) AND +POWER(2,15)-1 ),
  medium NUMBER(10,0) CHECK ( medium BETWEEN -POWER(2,31) AND +POWER(2,31)-1 ),
  big    NUMBER(19,0) CHECK ( big    BETWEEN -POWER(2,63) AND +POWER(2,63)-1 )
);

INSERT INTO table_name VALUES ( -POWER(2,15), -POWER(2,31), -POWER(2,63) );
INSERT INTO table_name VALUES ( POWER(2,15)-1, POWER(2,31)-1, POWER(2,63)-1 );

Potom:

SELECT * FROM table_name

Výstupy:

SMALL  MEDIUM      BIG
------ ----------- --------------------
-32768 -2147483648 -9223372036854775808
 32767  2147483647  9223372036854775807



  1. Výpis importu vývojáře PL/SQL

  2. Proč fputcsv vytváří duplicitní sloupce?

  3. PHP připravilo vložení příkazu ze smyčky dat

  4. Zajistí všechny uživatele ve skupině s pohlavím muž