第 1 行出错:ORA-00907:缺少右括号

  • 本文关键字:ORA-00907 出错 sql oracle
  • 更新时间 :
  • 英文 :


我相信我有正确的 SQL plus 命令语法,我已经尝试了不同的方法来做到这一点,但我收到相同的错误消息。我不知道为什么我会收到这个"缺少右括号错误"的任何帮助,我们将不胜感激,提前感谢您。这是我的代码:

create table PUBLISHERS (
NAME varchar2(50) primary key, 
address varchar2(50), phone integer(10) 
);

integer数据类型不使用长度限定符。 integer相当于number(38,0)

SQL> ed
Wrote file afiedt.buf
  1  create table PUBLISHERS (
  2  NAME varchar2(50) primary key,
  3  address varchar2(50),
  4  phone integer
  5* )
SQL> /
Table created.

如果要限制大小,请使用number

SQL> ed
Wrote file afiedt.buf
  1  create table PUBLISHERS (
  2  NAME varchar2(50) primary key,
  3  address varchar2(50),
  4  phone number(10)
  5* )
SQL> /
Table created.

但是,由于您永远不会对电话号码执行数字运算,虽然您通常可能会对其执行字符串操作以格式化电话号码以显示,但通常将电话号码存储为字符串而不是数字是有意义的。 您可以添加CHECK约束以确保格式正确。

SQL> ed
Wrote file afiedt.buf
  1  create table PUBLISHERS (
  2  NAME varchar2(50) primary key,
  3  address varchar2(50),
  4  phone varchar2(10)
  5* )
SQL> /
Table created.

INTEGER不是 Oracle 内置数据类型。它只是预言机支持的一种 ANSI 格式。INTEGER 的预言机表示形式是 NUMBER (38(。请改用NUMBER数据类型。

CREATE TABLE publishers(
     name VARCHAR2(50) PRIMARY KEY, 
     address VARCHAR2(50), 
     phone NUMBER(10)
);
create table doctor_details(doctor_id number(10),
username varchar2(30) not null,
password varchar2(30) not null,
name varchar2(30) not null,
father_name varchar2(30) not null,
gender varchar2(6) not null check(gender in('male','female)),
email varchar2(50) not null,
contact_no number(10) not null,
qualification varchar2(50) not null,
specialization varchar2(5) not null,
date_of_birth date not null,
date_of_joining date not null,
 primary key(doctor_id))

错误是缺少右括号

最新更新