sql >> Database >  >> RDS >> Oracle

Vind numeriek subtype (smallint, int, etc) in oracle

Het gegevenstype SMALLINT en INT zijn slechts ANSI/ISO-standaardtypen die, in Oracle, zijn aliassen voor NUMBER(38) en de BIGINT datatype bestaat niet.

Als u 2-byte-, 4-byte- en 8-byte-waarden wilt opslaan, kunt u een combinatie van NUMBER van de juiste grootte gebruiken kolommen en beperkingscontrole om ervoor te zorgen dat de gegevens binnen de vereiste grenzen vallen:

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 );

Dan:

SELECT * FROM table_name

Uitgangen:

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



  1. Dynamisch toevoegen van records met nulwaarde voor volgende AP's om de analytische functie te laten werken

  2. Recursieve zoekopdracht in PostgreSQL. KIES *

  3. String splitsen op positie van scheidingsteken met behulp van orakel

  4. Leg plan uit in mysql-prestaties met behulp van Tijdelijk gebruiken; Filesort gebruiken; Indexvoorwaarde gebruiken