异常如下:当我把红色部分的SQL语句拿到PL/SQL上能查出数据,不会报错啊??这是怎么回事啊???
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL gram
mar [select iptca_cm_probe_node.node_id,res_objects.ip_addr from dnms.iptca_cm_p
robe_info,dnms.iptca_cm_probe_node,dnms.res_objects where dnms.iptca_cm_probe_no
de.probe_id=dnms.iptca_cm_probe_info.probe_id and dnms.res_objects.cuid = dnms.i
ptca_cm_probe_info.cuid
]; nested exception is java.sql.SQLException: 列名无效
Caused by:
java.sql.SQLException: 列名无效
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:125)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:162)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:227)
        at oracle.jdbc.driver.OracleStatement.get_column_index(OracleStatement.j
ava:3047)
        at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl
.java:1861)
        at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:155
9)
        at org.jboss.resource.adapter.jdbc.WrappedResultSet.getString(WrappedRes
ultSet.java:405)
.
.
.
.
.

解决方案 »

  1.   

    我把SQL语句拿到PL/SQL上能查出数据,不会报错的啊!!!???就是用jdbcTemplete出问题啊
      

  2.   

    是不是结果集的字段和你java的代码没对应
      

  3.   

    下面写的有错吗???
    jdbcTemplete.query(sqlexp, new RowCallbackHandler() {
    public void processRow(ResultSet rs)
    throws SQLException {
    map.put(rs.getObject(id).toString(), rs.getObject(label));
    }
    });
      

  4.   

    id="node_id", label="ip_addr"试试
      

  5.   


    为什么要这样用?? 还写了个回调,jdbcTemplate里面有多少查询方法,楼主去看看还有 sql在程式里面拼接好,再用jdbcTimplate.queryForList(sql,objcet[]);做,在之前,先断点打在sql那,然后复制sql到pl/sql里面执行,看看什么问题
      

  6.   

    ...09年的问题了
    我也碰到了,查到你的了,其实这个是你在读取值的时候,RowMapper中,用ResultSet获取某个值的时候,你取错了某一个列名。