gpt4 book ai didi

java - 使用 JDBC 读取 Oracle DB 中的 XMLType 列

转载 作者:行者123 更新时间:2023-12-01 15:15:14 25 4
gpt4 key购买 nike

我正在尝试使用 JDBC 将 XMLType 列读入 Clob 类型变量。当我这样做时出现错误...有什么想法吗?

java.sql.SQLException: Invalid column name
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:197)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:269)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:490)
at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3353)
at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1883)
at oracle.jdbc.driver.OracleResultSet.getClob(OracleResultSet.java:358)
at persistance.FilmDAO.findFilmsWithXML(FilmDAO.java:626)

这是我的代码:

public ArrayList<FilmBean> findFilmsWithXML() throws SQLException {

ArrayList<FilmBean> filmList = new ArrayList<FilmBean>();

try {
currentConnection = ConnectionPool.getInstance().getConnection();

String searchQuery = SqlHelper.getInstance().getSqlQuery(705);

System.out.println("Query: " + searchQuery);

currentStatement = currentConnection.prepareStatement(searchQuery);

currentResultSet = currentStatement.executeQuery();

while (currentResultSet.next())
{
FilmBean filmDTO = new FilmBean();
filmDTO.setFilmId(Integer.parseInt(currentResultSet.getString("PK_ID_FILM")));
filmDTO.setPoster(currentResultSet.getString("POSTER"));
filmDTO.setTitle(currentResultSet.getString("TITLE"));
filmDTO.setXml(currentResultSet.getClob("MYXML"));
filmList.add(filmDTO);
}
}
[...]
}

setXml() 方法将 Clob 类型值设置到模型中的 filmDTO 对象中。

编辑

查询缺少别名:

SELECT to_clob("MYXML") As MYCLOB, PK_ID_FILM, POSTER, TITLE FROM FILM Where MYXML is not null

最佳答案

to_clob(XMLElement("MYXML")) 之后缺少别名。查询中不存在 MYXML 列。

关于java - 使用 JDBC 读取 Oracle DB 中的 XMLType 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11710811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com