Kiểu dữ liệu SMALLINT
và INT
chỉ là các loại tiêu chuẩn ANSI / ISO, trong Oracle, là bí danh cho NUMBER(38)
và BIGINT
kiểu dữ liệu không tồn tại.
Nếu bạn muốn lưu trữ các giá trị 2 byte, 4 byte và 8 byte thì bạn có thể sử dụng kết hợp NUMBER
có kích thước thích hợp cột và kiểm tra ràng buộc để đảm bảo dữ liệu nằm trong giới hạn yêu cầu:
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 );
Sau đó:
SELECT * FROM table_name
Kết quả đầu ra:
SMALL MEDIUM BIG
------ ----------- --------------------
-32768 -2147483648 -9223372036854775808
32767 2147483647 9223372036854775807