JDBC oracle排序传参无法正确

SQL语句如下:


select distinct *
  from (select row_number() over(order by currentSite desc) as rownumber,
               v.*
          from (select emp.emp_id    empId,
                       pcb.proj_desc currentSite,
                       pcd.proj_desc headerCountSite
                  from dsasdba.ssls_security_master         sm,
                       dsasdba.ssls_security_user_role      ur,
                       dsasdba.ssls_security_role_team_edit rte,
                       dsasdba.ssls_security_team_table     team,
                       employee_all_details                 emp
                  left join proj_code pcb on emp.emp_branch = pcb.proj_code
                  left join proj_code pcd on emp.emp_dept = pcd.proj_code
                 where 1 = 1
                   and upper(sm.username) = upper('ADMINISTRATOR')
                   and sm.pkey = ur.user_id
                   and ur.role_id = rte.role_id
                   and team.team_id = rte.team_id
                   and team.team_code = emp.emp_team) v) t
 where rownumber between 1 and 10

這條語句在ORACLE數據褲中執行沒有問題,修改order by 後面的排序也同樣可以正確排序

但我的語句是用PrepareStatement的參數注入的,一共注入了4個參數: orderByClause、username、pageBegin、pageEnd

oderByClause對應的就是 這個拼接的字符串,

經過這樣注入查詢的結果就是,這個currentSite desc無法作為SQL的一部分,被當做字符串變量插入到SQL中,

查詢結果一直按默認排序來顯示

但幾次都沒發現問題所在,直到我乾脆把這個字符串連同SQL一塊拼接,搜索結果才正確排序

2018.11.6 11:15

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值