oracle建表语句

create table usptotest
(
pn varchar(10) not null,
isd varchar(20) not null default '',
title varchar(150) not null default '',
abst varchar(2000) not null default '',
appno varchar(20) not null default '',
appdate varchar(20) not null default '',
inventor varchar(200) not null default '',
assignee_name varchar(50) not null default '',
assignee_country varchar(20) not null default '',
assignee_city varchar(20) not null default '',
assignee_state varchar(10) not null default '',
primary key (pn)
)
以上的sql在执行后提示:
17:30:12 [CREATE - 0 row(s), 0.020 secs] [Error Code: 907, SQL State: 42000] ORA-00907: 缺失右括号
... 1 statement(s) executed, 0 row(s) affected, database exec time 0.020 sec [0 successful, 0 warnings, 1 errors]

好像没有少括号,请问哪里有问题呢?谢谢!
照一楼的说法做了,但现在我输入一条仅包括主键pn的数据到表中,他提示:无法将 NULL 插入,其它的字段禁止为空了,我的意思是除第一个字段主键外,其它字段可以不输入,而是直接赋值为空,请问这该怎么修改呢?谢谢!
create table usptotest
(
pn varchar(10) not null,
isd varchar(20) default '' not null ,
title varchar(150) default '' not null ,
abst varchar(2000) default '' not null ,
appno varchar(20) default '' not null ,
appdate varchar(20) default '' not null ,
inventor varchar(200) default '' not null ,
assignee_name varchar(50) default '' not null ,
assignee_country varchar(20) default '' not null ,
assignee_city varchar(20) default '缓毁渣' not null ,
assignee_state varchar(10) default '' not null,
primary key (pn)
)
这样就OK了
你写反了
除第一个字段主键外,其它字段可以不输入,而是直接赋值为空
create table usptotest
(
pn varchar(10) not null,
isd varchar(20) default '' ,
title varchar(150) default '' ,
abst varchar(2000) default '' ,
appno varchar(20) default '',
appdate varchar(20) default ''余历 ,
inventor varchar(200) default '' ,
assignee_name varchar(50) default '扰悄',
assignee_country varchar(20) default '' ,
assignee_city varchar(20) default '' ,
assignee_state varchar(10) default '' ,
primary key (pn)
)

把default关键字去掉,Oracle不渣老支持 not null 和 default 同时使用,你羡梁答这是MySQL的语法了,双引号也去掉就兄慧可以了,亲测成功。


CREATE SEQUENCE add_emp

increment by 1 指如  -- 每次递增1

start with 1     -- 从1开始

nomaxvalue       -- 没有最大让拦值坦逗胡

minvalue 1       -- 最小值=1

NOCYCLE;         -- 不循环


就在引号中间加个空格吧!这样就可以了,其实没必要手动加个 default '',它和系统默认的null是一样袭槐的——余凯在没加拍毁友空格的时候!