oracle新建表后插入数据显示“列在此处不允许”

新建的表语句:createtableadmin_info(NAMEvarchar2(50)constraintADMININFO_NAME_PKprimarykey,PA... 新建的表语句:
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");
展开
 我来答
tutu天然呆
高粉答主

2018-03-31 · 说的都是干货,快来关注
知道大有可为答主
回答量:239
采纳率:100%
帮助的人:7.8万
展开全部

出现的原因是由于,在插入字符或字符串型字段时。如果插入的数据是纯数字,则不会有错误;如果出现字符,则会报ORA-00984列在此处不允许异常。 可以创建TestUser表,如下:

view plaincopy to clipboardprint?

  • create table TestUser 

  • usercode char(5),  

  • username varchar2(20)  

  • 以下例子请注意第一个字段usercode的值

    1、正常例子:usercode为纯数字。可以正常插入TestUser表:

    view plaincopy to clipboardprint?

  • insert into TestUser values (11111,'张三');  

  • 2、异常例子:usercode第一位出现字符A。就会出现ORA-00984列在此处不允许错误:

    view plaincopy to clipboardprint?

  • insert into TestUser values (A1111,'张三');  

  • 3、解决例子:usercode两端加上了单引号。解决办法很简单,只要给字段值前后加上单引号即可:

    view plaincopy to clipboardprint?

  • insert into TestUser values ('A1111','张三');  

  • 总之,对于字符型字段,大家在插入数据时最好在字段值两端加上单引号,这样就可以很好的避免ORA-00984错误了。

badkano
2013-12-30 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885366
团长

向TA提问 私信TA
展开全部

双引号改成单引号

 

oracle中双引号的作用类似于sqlserver里的中括号,用来表示某些东西代表字段名或表名,单引号引起来的才代表插入字符

insert into admin_info values('zhangsan66','1234');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二楼最厉害
推荐于2018-02-26 · TA获得超过4345个赞
知道小有建树答主
回答量:288
采纳率:50%
帮助的人:238万
展开全部
insert into admin_info values('zhangsan66','1234');--此处单引号
commit;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式