【问题标题】:Error while creating TABLE in database在数据库中创建 TABLE 时出错
【发布时间】:2016-10-04 07:49:46
【问题描述】:

我正在使用 oracle 10g ex 学习所以这是我的代码

CREATE TABLE MINE 
(
    NAME VARCHAR(10),
    ID INT(3) PRIMARY KEY 
);

我的错误是

ORA-00907:缺少右括号。

但我没有错过正确的括号。还有其他机会或我必须知道的事情来解决这个问题。

【问题讨论】:

    标签: sql oracle syntax-error ddl create-table


    【解决方案1】:

    INT 不需要大小 - 它是 NUMBER(38) 的别名。

    CREATE TABLE MINE 
    (
        NAME VARCHAR(10),
        ID   INT PRIMARY KEY 
    );
    

    但是,您可能想要使用 VARCHAR2NUMBER 类型:

    CREATE TABLE MINE 
    (
        NAME VARCHAR2(10),
        ID   NUMBER(3,0) PRIMARY KEY 
    );
    

    现在是养成好习惯的时候了——你可能还想为你的约束命名:

    CREATE TABLE MINE 
    (
        NAME VARCHAR2(10),
        ID   NUMBER(3,0) CONSTRAINT mine__id__pk PRIMARY KEY 
    );
    

    【讨论】:

      【解决方案2】:

      int 数据类型不接受大小参数:

      CREATE TABLE MINE 
      (
          NAME VARCHAR(10),
          ID INT PRIMARY KEY -- Here!
      );
      

      【讨论】:

        【解决方案3】:

        创建表 Mine(name varchar(10),Id number(20) PRIMARY KEY);

        【讨论】:

        • 能否请您 edit 解释为什么这段代码回答了这个问题?纯代码答案是 discouraged,因为它们不教授解决方案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多