开发者社区> 问答> 正文

oracle下left join查询报ora-03113:一表多字段另一表同一字段关联?报错

用友nc的web service接口报500,跟踪代码后发现是一个sql查询报错引起的。

该sql是多个表通过left join on连接起来的。其中一个表很多字段另一个表的一个字段关联,

一查询就报 ORA-03113: 通信通道的文件结束,不过去掉case和decode或者中文就没问题。

其他sql都可以调case和decode或者包含中文。就这个sql不行。

sql总长度3506。小于pl/sql的50k和oracle的64k每行也不超过sqlplus的2099。

这个sql类似于如下sql:

select a.name

b1 .c1  ,
b2 .c2  ,
b4 .c4  ,
b5 .c5  ,
b6 .c6  ,
b8 .c8  ,
b9 .c9  ,
b10.c10 ,
b11.c11 ,
b12.c12 ,
b14.c14 ,
b15.c15 ,
b16.c16 ,
b18.c18 ,
b19.c19 ,
b20.c20 ,
b21.c21 ,
b22.c22 ,
b24.c24 ,
b25.c25 ,
b26.c26 ,
b28.c28 ,
b29.c29 ,
from table_a a
left join table_b  b1  on  b1.c  = a.c1
left join table_b  b2  on  b2.c  = a.c2
left join table_b  b4  on  b4.c  = a.c4
left join table_b  b5  on  b5.c  = a.c5
left join table_b  b6  on  b6.c  = a.c6
left join table_b  b8  on  b8.c  = a.c8
left join table_b  b9  on  b9.c  = a.c9
left join table_b  b10 on  b10.c = a.c10
left join table_b  b11 on  b11.c = a.c11
left join table_b  b12 on  b12.c = a.c12
left join table_b  b14 on  b14.c = a.c14
left join table_b  b15 on  b15.c = a.c15
left join table_b  b16 on  b16.c = a.c16
left join table_b  b18 on  b18.c = a.c18
left join table_b  b19 on  b19.c = a.c19
left join table_b  b20 on  b20.c = a.c20
left join table_b  b21 on  b21.c = a.c21
left join table_b  b22 on  b22.c = a.c22
left join table_b  b24 on  b24.c = a.c24
left join table_b  b25 on  b25.c = a.c25
left join table_b  b26 on  b26.c = a.c26
left join table_b  b28 on  b28.c = a.c28

left join table_b  b29 on  b29.c = a.c29

请教诸位大神这个sql该如何优化?

报错的原因可能是什么?

展开
收起
爱吃鱼的程序员 2020-06-14 15:20:58 891 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    用友的人说可能是表空间的问题,也可能是sql太长的问题(dba和我都不认为是sql太长的问题),说可能重启服务器就好了,事实上重启完服务器还是这个问题。
    跟踪日志看看具体是什么错误

    selecta.name, 

    casewhenb.c=a.c1thenb.c1elseNULLendasc1,

    ……

    casewhenb.c=a.c29thenb.c29elsenullendasc29

    fromtablebb,tableaa;

    用这个行不。

    不行

    2020-06-14 15:21:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关镜像