Oracle
 sql >> база данни >  >> RDS >> Oracle

Намерете цифров подтип (smallint, int и т.н.) в Oracle

Типът данни SMALLINT и INT са просто стандартни типове ANSI/ISO, които в Oracle са псевдоними за NUMBER(38) и BIGINT типът данни не съществува.

Ако искате да съхранявате 2-байтови, 4-байтови и 8-байтови стойности, можете да използвате комбинация от NUMBER с подходящ размер колони и проверка на ограниченията, за да се гарантира, че данните са в изискваните граници:

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

След това:

SELECT * FROM table_name

Изходи:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешки при създаването на тялото на пакета на Oracle

  2. 11gR2 Compression Advisor =Evil

  3. JPQL LOWER функция в IN израз

  4. ORA-01002:извличане извън последователност

  5. Непренебрежимо малка разлика в плана за изпълнение с Oracle при използване на jdbc Timestamp или Date