ORA-00907: 在 Oracle 11G 中创建 table 时缺少右括号

ORA-00907: missing right parenthesis when creating a table in Oracle 11G

在 Oracle 11G 中,在创建如下所示的 table 时收到错误 ORA-00907: missing right parenthesis

create table structured_1000( 
year varchar2(4) NOT NULL,
    CP varchar2(50),
      ONSG varchar2(50),
      ONSLA varchar2(9),
      road varchar2(100) NOT NULL,
      cat varchar2(20)
  Refs varchar2(20),
  Refn varchar2(20),
  ajunction varchar2(20),
  bjunction varchar2 (20),
  lennet char(2)`
   );

我列出了整个 table,因为有时错误行会更改 - 显示了第 6 行和第 9 行。据我所知,所有括号都是可见的。 shell 和 APEX 都会出现此问题。

您的创建有错字 table。您在两个字段定义之间缺少逗号,例如:

cat varchar2(20)
Refs varchar2(20),

因此使用“,”(逗号)分隔两个字段,例如

 cat varchar2(20),
                 ^
Refs varchar2(20),

您的 create table 语句中存在两个问题:

  1. cat varchar2(20)

You have a missing comma.

  1. lennet char(2)`

An invalid backtick in the end.

解决这两个问题将成功创建 table:

SQL> CREATE TABLE structured_1000
  2    (
  3      YEAR      VARCHAR2(4) NOT NULL,
  4      CP        VARCHAR2(50),
  5      ONSG      VARCHAR2(50),
  6      ONSLA     VARCHAR2(9),
  7      road      VARCHAR2(100) NOT NULL,
  8      cat       VARCHAR2(20),
  9      Refs      VARCHAR2(20),
 10      Refn      VARCHAR2(20),
 11      ajunction VARCHAR2(20),
 12      bjunction VARCHAR2 (20),
 13      lennet    CHAR(2)
 14    );

Table created.

SQL>