INTEGER和NUMBER

在 Oracle 中,INTEGER 存放整形类型,NUMBER 存放浮点类型,但事实却是 INTEGER 也可以插入浮点类型的数据,下面的语句执行时是成功的:

CREATE TABLE t
(
  x integer
);
insert into t values(1.1);

 原因是 Oracle 数据库在创建表 t 的时候,自动把 INTEGER 转化成了 NUMBER 类型,可以用以下语句来查看实际的创建表语句:

SELECT dbms_metadata.get_ddl( object_type, object_name, owner ) 
 FROM all_objects
 WHERE object_name='T' and owner='INTEGRATION_TEST';

 实际创建表的语句如下:

CREATE TABLE "INTEGRATION_TEST"."T" 
(
  "X" NUMBER(*,0)
)

 也可以进入sqlplus,用命令DESC T;查看字段的数据类型

SQL> desc t;
 名称					   是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 X						    NUMBER(38)
 

你可能感兴趣的:(oracle,sql)