
oracle新建表后插入数据显示“列在此处不允许”
create table admin_info(
NAME varchar2(50) constraint ADMININFO_NAME_PK primary key,
PASSWORD varchar2(50) not null
);
插入语句:insert into admin_info values("zhangsan66","1234"); 展开
出现的原因是由于,在插入字符或字符串型字段时。如果插入的数据是纯数字,则不会有错误;如果出现字符,则会报ORA-00984列在此处不允许异常。 可以创建TestUser表,如下:
view plaincopy to clipboardprint?
create table TestUser
usercode char(5),
username varchar2(20)
insert into TestUser values (11111,'张三');
insert into TestUser values (A1111,'张三');
insert into TestUser values ('A1111','张三');
以下例子请注意第一个字段usercode的值
1、正常例子:usercode为纯数字。可以正常插入TestUser表:
view plaincopy to clipboardprint?
2、异常例子:usercode第一位出现字符A。就会出现ORA-00984列在此处不允许错误:
view plaincopy to clipboardprint?
3、解决例子:usercode两端加上了单引号。解决办法很简单,只要给字段值前后加上单引号即可:
view plaincopy to clipboardprint?
总之,对于字符型字段,大家在插入数据时最好在字段值两端加上单引号,这样就可以很好的避免ORA-00984错误了。
双引号改成单引号
oracle中双引号的作用类似于sqlserver里的中括号,用来表示某些东西代表字段名或表名,单引号引起来的才代表插入字符
insert into admin_info values('zhangsan66','1234');
commit;