WEB开发网
开发学院数据库Oracle Oracle关联查询时对关联字段的数据类型要求 阅读

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关系数据库中会出现,在其它关系数据库中不知道会不会出现,猜测可能也会有类似问题.

注:  这可能是一个很简单的问题,但这确可能是很容易忽视的问题,有时在设计表结构时,可能会由于考虑不周,造成以后要关联查询相关数据时出现上面的错误,从而要去改变表的字段类型,从而带来一些不必要的麻烦.

Tags:Oracle 关联 查询

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接