【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】oceanbase 4.2.1.6
【问题描述】后台代码执行insert into values (select a as 别名 from dual union all select b as 别名 from dual ) 发现别名貌似被过滤掉了
问题详细描述下把,别名被过滤掉了是什么意思
我们在后台写了sql 如下 :
insert into t_wf_runtime_work (WF_WORK_ID, WORK_NAME) select a.* from ( select ‘11efa2623f963cedbb82c197b459f7bc’ as a , null as b from dual union all select ‘11efa2626176e03ebb821d0b9f61ceac’ as a, ‘115623565’ as b from dual ) a
通过jdbc驱动连接数据库执行sql后发现t_wf_runtime_work表里面的WORK_NAME字段都是null
感觉像是as后的别名在执行sql的时候失效了
WORK_NAME这个字段的类型是什么呢
分两步试试,只执行select看下出来的结果是什么样的
但是内层如果有as 别名 , 直接在ob执行的话也是没有问题的 ,现在是想问下 , ob执行sql前有没有什么机制会是把子查询中union all 表的字段 as别名过滤掉了
您第一个sql加了别名 , 您如果不加别名的话 ,外层在嵌套一个select () 会有问题的 ;
其实我的诉求还是 为什么后台拼接了as 别名 , 但是到oceanbase数据库 as 别名貌似失效了 ; 是 druid组装sql的问题呢
正常有别名确实不会有问题的
老师 您驱动用的版本方便告知下么?
你好,更换驱动后问题还存在么
你好 今天我在环境验证下 , 验证后回复您