ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB

使用union时出现了一个这样的问题,ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB,原因是某个select中有个字段的类型为clob,解决办法:https://blog.csdn.net/qq_30125555/article/details/84325076

 

 

的确使用union all可以解决了问题,union all前面的那个查询结果集中会有重复的记录(如果使用union的话则最终结果不会有重复记录,这里注意union和union all的区别),所以想着第一个select要加上distinct来去掉重复的结果,

但是union all 前面的那个select加上了 distinct后,查询又出现了 :ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB 的错误!!!

最后还是用to_char来搞定的,因为我发现那个clob的属性并没有用到。。。(实在巧合,如果有用到的话,可能就不能用to_char来处理了?)

 

总结:1. union 不能操作于包含 clob的结果集,可以改为union all,但是有时会出现重复的结果(union和union all的区别);  

           2. 对clob的字段使用to_char后可以进行union操作,但是要结合实际情况看是否能使用。

           3. 使用 union all可以解决包含 clob字段的问题,但是可能会有重复结果(结合我的实际情况,是union all前面的那个select里面的left join导致该select有重复数据),此时使用union all的最终结果也就包含了重复值。

              并且,尝试使用distinct对产生重复数据的那个select进行过滤时,最后又报  ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB 的错误

 

posted @ 2021-01-04 17:21  一去二三浪里小白龙  阅读(15496)  评论(0编辑  收藏  举报
//增加一段JS脚本,为目录生成使用