![](/img/trans.png)
[英]Im using oracle 10g to create table but it is showing “ORA-00922: missing or invalid option” and in the query
[英]ORA-00922 : Cannot Create table in oracle using ojdbc
我想創建下表
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 有什么問題嗎?
CREATE TABLE EMPLOYEE ( name_id varchar(255) PRIMARY KEY, modified_at TIMESTAMP, created_at TIMESTAMP );
CREATE TABLE EMPLOYEE ( name_id varchar(255), modified_at TIMESTAMP, created_at TIMESTAMP, CONSTRAINT EMPLOYEE UNIQUE (name_id) );
我的 sql 有什么問題嗎?
不,它工作正常db<>fiddle 。
您可以更改的唯一兩件事是:
VARCHAR2
而不是VARCHAR
。CREATE TABLE EMPLOYEE (
name_id VARCHAR2(255),
modified_at TIMESTAMP,
created_at TIMESTAMP,
CONSTRAINT EMPLOYEE__name_id__u UNIQUE (name_id)
);
使用 java 代碼和驅動程序 ojdbc6-11.2.0.4.jar 執行的請求
如果您通過 JDBC 運行該語句,請刪除末尾的分號。 分號是 SQL/Plus(和 SQL 開發人員)中的語句終止符,但當您使用 JDBC 和類似內容時(當您只傳遞一條語句,因此終止符是不必要)。
代替內聯 pk 聲明,您可以使用如下內容:
CREATE TABLE EMPLOYEE (
name_id varchar(255) PRIMARY KEY,
modified_at TIMESTAMP,
created_at TIMESTAMP
)
ALTER TABLE EMPLOYEE
ADD CONSTRAINT employee_pk PRIMARY KEY (name_id);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.