【问题标题】:Oracle - Error "missing left parenthesis" when CREATE TABLEOracle - 创建表时出错“缺少左括号”
【发布时间】:2017-09-16 06:57:18
【问题描述】:

我正在使用 Oracle SQL Developer 来学习和实现 SQL 查询。但是每次我尝试创建表时,它都会出错,我不确定我到底错过了什么。看图看错误:

编辑:

【问题讨论】:

  • 没有任何列的表?也许你应该寻找更好的教程。 CREATE TABLE table2(col_name NUMBER);
  • @lad2025 看到问题。我不知道在表中添加列。我不知道为什么它显示“第 1 行缺少左括号”?如您所说,即使有列,也可以查看此图像prntscr.com/glscvn

标签: sql oracle oracle-sqldeveloper create-table


【解决方案1】:

你必须定义列:

CREATE TABLE table2(col_name NUMBER);

我不知道在表中添加列。 我不知道为什么它显示“第 1 行缺少左括号”

那么我们来看看CREATE TABLE的官方文档:

表名后面的每个子句对于任何给定的关系表都是可选的。但是,对于每个表,您至少必须使用 relational_properties 子句指定列名和数据类型,或者使用 table_properties 子句指定 AS 子查询子句。

如您所见,您必须将() 用于关系属性。

编辑:

如你所说,即使有列也能看到这张图片

现在你有不同的错误:invalid identifier。你必须删除,

CREATE TABLE table(
  ID NUMBER(2) --, causes error
);

来自文档:

如您所见,如果没有其他列定义,您将无法拥有 ,

也许您在不同的 RDBMS 中看到了这种模式,例如 SQL Server

CREATE TABLE tab
(
    a INT,   -- yes it works and could be very handy when editing 
);

Rextester Demo

【讨论】:

  • @SagarBajpai 请问您为什么不接受我的回答并选择另一个。它甚至不能回答你原来的问题
【解决方案2】:

您不能在列定义后使用逗号符号。如果有多列,您可以使用它们,但只有一列时不能使用它们。看下面的例子 -

Create Table A (
i int,
j int
);

对于一列 -

Create Table A (
i int
);

【讨论】:

    【解决方案3】:

    表格应该至少有一列。

    创建表table_name(column_name数据类型);

    【讨论】:

    • 我已经添加了列,仍然出现同样的错误。
    • 老大,你把数据类型换成实际数据类型了吗? CREATE TABLE 客户 ( customer_id number(10) );
    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2023-01-10
    • 2020-02-07
    • 1970-01-01
    相关资源
    最近更新 更多