我相信我有正确的SQL plus命令语法,我尝试了不同的方法,但我得到了相同的错误信息。我不知道为什么我得到这个“错过正确的括号错误”任何帮助将不胜感激,提前谢谢。 这是我的代码:
create table PUBLISHERS (
NAME varchar2(50) primary key,
address varchar2(50), phone integer(10)
);
答案 0 :(得分:4)
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.
答案 1 :(得分:1)
INTEGER
不是Oracle内置数据类型。它只是oracle支持的ANSI格式。 INTEGER的oracle表示是NUMBER(38)。改为使用NUMBER
数据类型。
CREATE TABLE publishers(
name VARCHAR2(50) PRIMARY KEY,
address VARCHAR2(50),
phone NUMBER(10)
);
答案 2 :(得分:0)
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))
错误是右括号缺失