【问题标题】:SQL keeps throwing "missing left parenthesis"SQL 不断抛出“缺少左括号”
【发布时间】:2022-01-12 21:32:50
【问题描述】:

我不明白我在这里做什么,但我在以下 SQL 代码中不断收到“缺少左括号”错误。谁能告诉我我做错了什么?新手来了。

CREATE TABLE AGENT_INFO
    (AgentID SMALLINT PRIMARY KEY, AgentName VARCHAR, PhoneNumber VARCHAR);

【问题讨论】:

标签: sql oracle


【解决方案1】:

varchar 数据类型需要大小

SQL> CREATE TABLE AGENT_INFO
  2      (AgentID     SMALLINT PRIMARY KEY,
  3       AgentName   VARCHAR2(20),
  4       PhoneNumber VARCHAR2(20));

Table created.

SQL>

(注意Oracle推荐varchar2而不是varchar。)

【讨论】:

  • 显然,已经有名称为 AGENT_INFO 的表/对象。由于您不能拥有两个同名的对象,因此您必须重命名此表,或删除同名的对象。
【解决方案2】:

VARCHAR 数据类型需要一个大小(在 Oracle 中应该是 VARCHAR2,对于 NUMBER(38) 应该是 SMALLINT is an alias):

CREATE TABLE AGENT_INFO(
  AgentID     SMALLINT PRIMARY KEY,
  AgentName   VARCHAR2(10),
  PhoneNumber VARCHAR2(10)
);

如果您想要一个可以接受文本而不指定最大大小的字符串列,请使用CLOB

CREATE TABLE AGENT_INFO(
  AgentID     NUMBER(38) PRIMARY KEY,
  AgentName   CLOB,
  PhoneNumber CLOB
);

db小提琴here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 2012-11-01
    相关资源
    最近更新 更多