insert插入数据时 SQL 错误: ORA-01722: 无效数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了insert插入数据时 SQL 错误: ORA-01722: 无效数字相关的知识,希望对你有一定的参考价值。
CREATE TABLE DTUserType(
UserTypeID varchar2(4) not null /*类型编号*/
check(UserTypeID like 'U'+'T'+'[0-9][0-9]'),
UserType varchar2(10) not null /*用户类型*/
check(UserType in ('管理员','送菜服务员','结账服务员','会员顾客','普通顾客')),
Invalid number(1) default 0 /*是否作废*/
check(Invalid between 0 and 1) not null,
constraint DTUserTypePK primary key(UserTypeID)
);
建表没有错误
为什么插入数据时报错:insert into DTUserType values('UT01','管理员',0);错误报告:
SQL 错误: ORA-01722: 无效数字
01722. 00000 - "invalid number"
这个约束删除掉了就正常了,你可以试下别的写法。
楼上说的SQL SERVER是另外一种数据库,跟ORACLE没关系。
帮你换了一个,但是不知道你的需求,你看着改。
check(regexp_like(UserTypeID ,'^([UT]+[0-9][0-9])$')) 参考技术A 你的应该不是SQL server ,SQL语句如果放在SQL server 中
需要改动一下
varchar2(4) 变为 varchar(4)
number(1) 变为 bit
然后一切正常。追问
SQL server是指什么,是在选择sid和server时的server吗??
一般是用varchar2比较兼容的呀??
sql developer里有bit这种数据类型吗??
oracle创建存储过程时,提示错误是:错误(5,18): PL/SQL: ORA-00947: 没有足够的值?代码如下:
参考技术A 你的表triggerzkl中不止四列,但你的insert语句中,仅有四列。
1.
将insert后面的值补齐
2.
写成insert triggerzkl(....)values(...)的形式
2选1
以上是关于insert插入数据时 SQL 错误: ORA-01722: 无效数字的主要内容,如果未能解决你的问题,请参考以下文章
C# 向Access数据库插入数据时提示INSERT INTO语法错误
访问不允许SQL-Server列中的空值的INSERT或UPDATE(访问运行时错误3162)