【发布时间】:2021-03-19 00:28:01
【问题描述】:
我要创建下表
CREATE TABLE EMPLOYEE (
name_id varchar(255) PRIMARY KEY,
modified_at TIMESTAMP,
created_at TIMESTAMP
);
但是oracle给出了错误
ORA-00922:选项缺失或无效
我也尝试了以下 SQL 请求,但发生了同样的问题
CREATE TABLE EMPLOYEE (
name_id varchar(255),
modified_at TIMESTAMP,
created_at TIMESTAMP,
CONSTRAINT EMPLOYEE UNIQUE (name_id)
);
使用 java 代码和驱动程序 ojdbc6-11.2.0.4.jar 执行的请求
我的 sql 有什么问题吗?
【问题讨论】:
-
db<>fiddle 无法为您的第一个查询复制错误。我不确定你试图对第二个查询做什么,但约束不是有效的语法,因为你没有告诉它你试图创建什么类型的约束。
-
你是对的,我编辑了第二个请求它有问题,但我想说的是这两个表对我的应用程序代表相同的东西,直接执行 sql 到 oracle 工作正常。但是使用 java 代码执行此操作会给我提到的错误
-
你在通过JDBC运行语句时是否去掉了语句末尾的分号?
-
@MT0 不,我按原样使用它,我没有删除任何分号
-
我已经更新了我的答案 - 你应该只需要删除结尾的分号。