java.sql.SQLException : Invalid column index

标签 java sql oracle oracle11g

我有一个 SQL 查询,我想用它来将组件计数到表中。

private DCDataObj dc;

    public class DCDataObj
    {

        private int datacenter;             //  Datacenters
        ..............

        public DCDataObj(int datacenter............)
        {
            this.datacenter = datacenter;
            ...............
        }

        public int getDatacenter()
        {
            return datacenter;
        }

        public void setDatacenter(int datacenter)
        {
            this.datacenter = datacenter;
        }

        ............
    }

ps = conn.prepareStatement("SELECT COUNT(1) AS CNT FROM COMPONENTSTATS CS, COMPONENTTYPE CT "
        + " WHERE CS.COMPONENTTYPEID = CT.COMPONENTTYPEID AND CT.COMPONENTTYPEID IN ( "
        + " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " //  10
        + " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " //  20
        + " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " //  30
        + " ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) " //  40
        + " GROUP BY CT.NAME ORDER BY CT.NAME");

ps.setInt(1, 1000);
...............

ResultSet result = ps.executeQuery();
            while (result.next())
            {

                dc = new DCDataObj(
                        result.getInt(1),
                        ...............

这里是完整的源代码:http://pastebin.com/YMvqBPpV

我收到此错误消息:java.sql.SQLException:无效的列索引

这是设计问题还是SQL查询有问题?

最佳答案

我看到了你的完整源代码,你有一堆result.getInt(INDEX) 。因为你只是在做SELECT COUNT(1) ,只有一列,因此对于 INDEX 的任何值除了 1 之外,getInt()将会失败。

将查询更改为 SELECT <LIST> ...哪里LIST是一个逗号分隔的列名列表,您要从中检索值。

关于java.sql.SQLException : Invalid column index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098998/

相关文章:

java - 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

java - 如果预先知道元素数量,是否应该定义 HashMap 的初始容量和负载因子?

css - Oracle Apex 应用程序中的显示错误

sql - 甲骨文 SQL : Why is my function outputting null?

sql - oracle sql regexp_replace

java - Heroku运行play框架2时出错

java - 具有通用 arraylist 返回类型和参数的 el 函数

python - Postgresql 启动失败

sql - postgresql:offset + limit 变得非常慢

mysql - SQL - 查询每个酒店的不同成人/ child 的多个房间