0

我想从 cityHotelData 表中获得连接的 citycode-hotelcode 对。(cityHotelData 表中的citycode 和hotelcode 是varchar)

当我使用 phpPgAdmin 运行以下查询时,它工作正常。

select citycode || '-' || hotelcode from cityHotelData

但是当我使用 JDBC 在 java 中运行它时,它会出现以下错误。

org.postgresql.util.PSQLException: The column name citycode || '-' || hotelcode was not found in this ResultSet.

我在用PostgreSQL 8.0.26.

Java 代码:

Connection conn = DriverManager.getConnection(ConnString,ConnUser,ConnPassword);

public ResultSet executeStatementQuery(String sql) throws Exception {

        this.qry = sql;

        try {
            stmt    = conn.createStatement(); // Statement stmt
            rs      = stmt.executeQuery(sql); //ResultSet rs
        } catch (SQLException sqlEx) {
            sqlEx.printStackTrace();
            closeResultSet();
        } catch (Exception cnfe) {
            closeResultSet();
            cnfe.printStackTrace();
        }
        return rs;
    }
4

2 回答 2

4

尝试这个:

SELECT (citycode || '-' || hotelcode) AS cityhotel
FROM cityHotelData

编辑:要排除任何 Java 问题,请尝试使用此 Java 代码:

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(
    "SELECT (citycode || '-' || hotelcode) AS cityhotel FROM cityHotelData"
);
while (rs.next()) {
    System.out.print("City-hotel code: ");
    System.out.println(rs.getString(1));
}
rs.close();
st.close();
于 2012-11-08T06:35:24.737 回答
1

我不确定为什么会发生这个问题 - 这显然是查询的 JDBC 准备问题,但我们仍然没有完整的图片,没有看到查询的确切来源以及它是如何传递到executeStatementQuery.

一个简单的替代方法是使用此查询:

select citycode, hotelcode from cityHotelData

然后将这些值与-java 层中的值连接起来。

于 2012-11-08T06:49:17.977 回答