create table t_user(
fid varchar2(44) primary key,
uname varchar2(50) not null,
upassword varchar2(50),
uage number(2,0),
uemail varchar2(50)
);
1.字符串使用双引号
insert into t_user(fid,uname,upassword,uage,uemail)
("2","test2","test2",45,"456@");
报错:
错误原因:
Oracle不能识别双引号,默认字符串都采用单引号
修改如下:
insert into t_user(fid,uname,upassword,uage,uemail)
values ('2','test2','test2',45,'456@')
2.列类型不匹配
修改为:
insert into t_user(fid,uname,upassword,uage,uemail)
values ('3','test2','test2',45,'456@')
3.Oracle对字符和字符串插入数值处理机制
默认情况下,对于字符和字符串类型的数据插入时,如果是数值型字符串,则可以不加引号。如果是非数字类型字符串必须加引号。
数字型字符串:是指字符串内容有纯数字0~9组成,不含其它任何字符
create table TestUser (
usercode char(5),
username varchar2(20)
)
以下例子请注意第一个字段usercode的值
1、正常例子:usercode为纯数字。可以正常插入TestUser表:
insert into TestUser values (11111,'张三');
2、异常例子:usercode第一位出现字符A。就会出现ORA-00984列在此处不允许错误:
insert into TestUser values (A1111,'张三');
3、解决例子:usercode两端加上了单引号。只要给字段值前后加上单引号即可:
insert into TestUser values ('A1111','张三');
总之,对于字符型字段,大家在插入数据时最好在字段值两端加上单引号,这样就可以很好的避免ORA-00984错误了。
------------------------------------------------------------------------
同样,建表时,给字符类型数据采用默认约束时,需要注意引号使用
UserStatus CHAR(1) DEFAULT 'U' NOT NULL