开发者社区> 问答> 正文

Druid关于对Oracl的pivot支持。

我采用的springboot+Druid(1.2.6)+mybatis+Oracle11,主要问题就是针对不同pivot写法,出现的异常以及处理方式, SQL代码片段1:

	FROM
		(
		SELECT
			* 
		FROM
			( SELECT f.pub pub, f.openway, f.allin_uv, f.firstin_uv, f.tm FROM app.tongji_newsapp_pub1openway_1d f ) a pivot (
				sum( allin_uv ) AS alluv,
				sum( firstin_uv ) AS fstuv FOR openway IN ( 'desktop' AS desktop, 'direct' AS tdirect, 'push' AS tpush, 'total' AS total, 'outside' AS toutside ) 
			) 
		) t
		LEFT JOIN app.d_newsapp_pubinfo p ON t.pub = p.pub 
		AND p.isshow = 1 
		AND p.pub_kind != 'None' 

SQL代码片段2:

	FROM
		( SELECT f.pub pub, f.openway, f.allin_uv, f.firstin_uv, f.tm FROM app.tongji_newsapp_pub1openway_1d f ) a pivot (
			sum( allin_uv ) AS alluv,
			sum( firstin_uv ) AS fstuv FOR openway IN ( 'desktop' AS desktop, 'direct' AS tdirect, 'push' AS tpush, 'total' AS total, 'outside' AS toutside ) 
		) t
		LEFT JOIN app.d_newsapp_pubinfo p ON t.pub = p.pub 
		AND p.isshow = 1 
		AND p.pub_kind != 'None' 

这两段SQL的完整版在navicat或者plsql都是可以正常执行的,但是在项目代码环境执行异常。

SQL片段1在代码可以执行。 SQL片段2在代码不可以执行,但是关闭了springboot+druid的wall配置,就可以正常执行了。 目前定位是druid对这块SQL的解析有问题,但是具体原因不是很清楚,想找大佬们请教请教,个人源码解读有点欠缺。

展开
收起
游客yafq74eplo5ey 2021-09-06 17:54:25 855 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载