sql - ORA-00907 : missing right parenthesis (While Creating the Table)

标签 sql oracle syntax-error

这个问题在这里已经有了答案:





How to create id with AUTO_INCREMENT on Oracle?

(17 个回答)


2年前关闭。




我在 SQL 中创建表格时遇到了这个问题,

CREATE TABLE Worker 
(
    WORKER_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    FIRST_NAME CHAR(25),
    LAST_NAME CHAR(25),
    SALARY INT(15),
    JOINING_DATE DATETIME,
    DEPARTMENT CHAR(25)
);

面对错误

"ORA-00907: missing right parenthesis"



你能帮忙吗?
我已经修改了查询并多次重新运行它仍然收到此错误。

最佳答案

AUTO_INCREMENT不是 Oracle 中的关键字,并且在 oracle 12c 之前在 oracle 中没有这样的概念。

甲骨文 12c , 引入新概念,即IDENTITY列。

此外,DATETIME 不是 oracle 中的有效数据类型。请参阅以下示例中的内联注释。

您可以根据您的情况创建所需的表( Oracle 12 或更高版本 ):

SQL> CREATE TABLE Worker
  2  (
  3     WORKER_ID INT GENERATED BY DEFAULT ON NULL AS IDENTITY,
  4     FIRST_NAME CHAR(25),
  5     LAST_NAME CHAR(25),
  6     SALARY INT,
  7     -- JOINING_DATE DATETIME, datetime is not a data type in oracle
  8     JOINING_DATE DATE, -- date stores date and time both the component
  9     DEPARTMENT CHAR(25)
 10  );

Table created.

SQL>


干杯!!

关于sql - ORA-00907 : missing right parenthesis (While Creating the Table),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59098803/

相关文章:

mysql - 有没有更好的方法来确定书店数据库中最受信任的用户?

c++ - LZZ 语法错误 for typedef enum _foo { a } foo;

c++ - 使用宏将#ifdef 放在代码中

sql - 使用单个 .sql 脚本文件创建多个表

oracle - plsql存储过程采用参数给出错误

mysql - SQL 查询 - 大量连接 -

php - MYSQL:按周间隔分组,大于星期一

sql - 在 Postgres 查询中保留数组成员顺序

sql - 在另一个 plsql 脚本中调用 plsql 脚本

sql - SQL中的乘法聚合运算符