【发布时间】:2021-01-12 13:35:21
【问题描述】:
我正在尝试在 Oracle 中创建下表。
CREATE TABLE CUSTOMER(CUST_ID INT(10),
CUST_NAME VARCHAR2(50),
CUST_SEX CHAR(2),
CUST_STATE VARCHAR2(50),
CUST_COUNTRY VARCHAR2(50));
我收到一条错误消息,提示缺少右括号。实际上,问题在于 CUST_ID 列的 INT 数据类型。从 DDL 查询中删除精度 :(10) 后,我就能够成功执行它。
Oracle 文档没有指定关于此数据类型是否可以附带精度参数的任何内容。但是 Oracle 确实提到 INTEGER/INT 符合 ANSI 标准。
https://docs.oracle.com/cd/B19306_01/olap.102/b14346/dml_datatypes002.htm
某些其他非官方参考资料将 INT/INTEGER 描述为 NUMBER(38) 的同义词。
谁能告诉我是否确实不能为 INT 数据类型指定精度?
【问题讨论】:
-
为什么你认为
INTEGER会支持精度? SQL 标准没有为INTEGER定义精度参数,Oracle 也没有。
标签: oracle precision ddl create-table oracle18c