青色的麦浪

导航

转:jdbcTemplate查询Oracle列名大写问题

解决办法是在列名前后加上 双引号

代码如下:

List<Object> params = new ArrayList<Object>();
StringBuilder sb = new StringBuilder();
sb.append(" SELECT  ");
sb.append(" T2.DD_NAME as \"name\", ");
sb.append(" 100 * round(COUNT(t.IDENTIFY_RESULT) / SUM(COUNT(t.IDENTIFY_RESULT) ) OVER(), 4 ) as \"value\" ");
sb.append(" FROM " + DBConst.RPT_RISK_ALERT + " T ");
sb.append(" RIGHT JOIN " + DBConst.TS_DATA_DICT + " T2 ON T.IDENTIFY_RESULT = T2.DD_KEY ");
sb.append(" WHERE 1=1 ");
sb.append(" AND T2.DD_KEY LIKE ? ");
params.add("00023_%");
sb.append("  GROUP BY T2.DD_NAME,T2.DD_KEY ");
sb.append("  ORDER BY T2.DD_KEY ");
List<Map<String, Object>> resultList = this.findForJdbc(sb.toString(), params.toArray());

生成的sql如下:

SELECT T2.DD_NAME AS "name", 100 * round(COUNT(t.IDENTIFY_RESULT) / SUM(COUNT(t.IDENTIFY_RESULT)) OVER (), 4) AS "value"
FROM RPT_RISK_ALERT T
    RIGHT JOIN TS_DATA_DICT T2 ON T.IDENTIFY_RESULT = T2.DD_KEY 
WHERE 1 = 1
    AND T2.DD_KEY LIKE '00023_%'
GROUP BY T2.DD_NAME, T2.DD_KEY
ORDER BY T2.DD_KEY

结果如下:

 

posted on 2017-11-28 14:10  青色的麦浪  阅读(1978)  评论(0)    收藏  举报