Oracle关联查询时对关联字段的数据类型要求
2009-04-09 13:11:45 来源:WEB开发网核心提示:在ORACLE中进行关联查询时,作为关联查询的两字段数据类型要一至,否则会报: ORA-01722:invalidnumber这样的错误,如下查询语句: select*fromAa,Bbwherea.loginid=b.userid; 如果a.loginid的数据类型为:number(n),而b.userid的数据类
在ORACLE中进行关联查询时,作为关联查询的两字段数据类型要一至,否则会报:
ORA-01722:invalid number
这样的错误,如下查询语句:
select * from A a,B b where a.loginid=b.userid;
如果a.loginid的数据类型为:number(n),而b.userid的数据类型为:varchar2(n),则会报上面的错误,要二者为同一数据类型,上面的查询语句才能正确的被执行,平时可能在做一些查询统计时没注意这些问题(可能表结构是别人事先已经建好了的,而我们只是去使用而于),所以当我们在设计表结构时,如果以后某两表(或多表)之间存在关联关系,即查询相关数据时,要关联它们之间的某些字段,这时我们就要注意了,要将到时可能用于关联查询的字段的数据类型设计为相同的类型,当然字段长度可以不一样,这样到时关联查询时就不会有问题了,否则以后还要改字段数据类型,而且此时表中又有了数据,为了防止数据丢失,改起来还有点麻烦.
这种问题在ORACLE关系数据库中会出现,在其它关系数据库中不知道会不会出现,猜测可能也会有类似问题.
注: 这可能是一个很简单的问题,但这确可能是很容易忽视的问题,有时在设计表结构时,可能会由于考虑不周,造成以后要关联查询相关数据时出现上面的错误,从而要去改变表的字段类型,从而带来一些不必要的麻烦.
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接