欢迎来到天天文库
浏览记录
ID:6013427
大小:21.50 KB
页数:2页
时间:2017-12-30
《oracle中字段类型为char时的问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Oracle中字段类型为char时的问题一、首先查看一下表结构,发现字段NAME,JOB的数据类型为char。SQL>descemployee;名称是否为空?类型-----------------------------------------------------------------------------IDNUMBER(18)NAMECHAR(20)EMPNUMNUMBER(10)JOBCHAR(20)二、我们先来执行插入数据。1、执行语句,成功插入,但发现123没有加引号也能成功插入,说明字段类型为char时,插入一串数字,可以不加引号。SQL>insertintoem
2、ployeevalues(1004,'hihi',2002,123);已创建1行。2、发现执行下面的插入语句时,报错,这是因为NAME为char类型,而插入的数据没有加引号,所以为char时,插入的不是纯数字串,则必须加引号。SQL>insertintoemployeevalues(1004,hihi,2002,123);insertintoemployeevalues(1004,hihi,2002,123)*第1行出现错误:ORA-00984:列在此处不允许3,加双引号也报错,说明只能是单引号。SQL>insertintoemployeevalues(1004,"hihi",200
3、2,123);insertintoemployeevalues(1004,"hihi",2002,123)*第1行出现错误:ORA-00984:列在此处不允许三、执行查询语句1、用单引号正确查出数据。SQL>select*fromemployeewherejob='huhu';IDNAMEEMPNUMJOB------------------------------------------------------------1002you2001huhu2、查询不用单引号将字段类型为char的值引起来报错。SQL>select*fromemployeewherejob=huhu;se
4、lect*fromemployeewherejob=huhu*第1行出现错误:ORA-00904:"HUHU":标识符无效3、即使是数字串也不行,必须得加引号。SQL>select*fromemployeewherejob=123;select*fromemployeewherejob=123*第1行出现错误:ORA-01722:无效数字4、数字串加引号,正确查出SQL>select*fromemployeewherejob='123';IDNAMEEMPNUMJOB-----------------------------------------------------------
5、-1004hihi20021231004hihi2002123二、执行更新操作。1、set时候赋值用数字串并不加引号,where条件判断时赋值数字串不加引号报错。SQL>updateemployeesetname=123wherejob=123;updateemployeesetname=123wherejob=123*第1行出现错误:ORA-01722:无效数字2、set时候赋值用数字串并不加引号,where条件判断时赋值数字串加引号成功更新。SQL>updateemployeesetname=123wherejob='123';已更新2行。3、set时候赋值用非数字串并不加引号,
6、报错。SQL>updateemployeesetname=wewewherejob='123';updateemployeesetname=wewewherejob='123'*第1行出现错误:ORA-00904:"WEWE":标识符无效4、set时候赋值用非数字串并不加引号,成功更新。SQL>updateemployeesetname='wewe'wherejob='123';已更新2行。综上:当是insert或者update……set的时候,数字串可以不加引号,其他必须加引号。但作为where的判断条件,都必须加引号。建议所有的时候都加引号。
此文档下载收益归作者所有