Oracle怎么老是报12704,java笔记 写报表sql时遇到的ora-12704错误解决

原sql为

select

floorEntry.ffloor as floor,build.fname_l2 as build,case when buildingProperty.fname_l2 = '业主自营' then buildingProperty.fname_l2 else '非业主自营' end as property ,

sum(room.froomarea) as tnArea,count(*) as roomCount

from

T_SHE_Room room left join T_SHE_Building build on room.fbuildingid=build.fid

left join T_SHE_BuildingFloorEntry floorEntry on room.fbuildingfloorid=floorEntry.fid

left join T_SHE_BuildingProperty buildingProperty on buildingProperty.fid = room.fbuildingpropertyid

group by floorEntry.ffloor,build.fname_l2,buildingProperty.fname_l2 order by 1,2,3

排查后发现case语句中T_SHE_BuildingProperty的fname_l2字段的定义为NVARCHAR2类型的

与‘非业主自营’不匹配,于是将sql改为如下,至此,问题解决

select

floorEntry.ffloor as floor,build.fname_l2 as build,case when buildingProperty.fname_l2 = '业主自营' then to_char(buildingProperty.fname_l2) else '非业主自营' end as property ,

sum(room.froomarea) as tnArea,count(*) as roomCount

from

T_SHE_Room room left join T_SHE_Building build on room.fbuildingid=build.fid

left join T_SHE_BuildingFloorEntry floorEntry on room.fbuildingfloorid=floorEntry.fid

left join T_SHE_BuildingProperty buildingProperty on buildingProperty.fid = room.fbuildingpropertyid

group by floorEntry.ffloor,build.fname_l2,buildingProperty.fname_l2 order by 1,2,3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值