如何使用java获取Clob
我在使用java获取Clob字段时遇到一些问题。这就是我所做的:如何使用java获取Clob,java,jdbc,db2,clob,db2-luw,Java,Jdbc,Db2,Clob,Db2 Luw,我在使用java获取Clob字段时遇到一些问题。这就是我所做的: String sql = ("SELECT DBMS_LOB.substr(LDTEXT, 1000) AS TEXT " + "FROM LONGDESCRIPTION "); try (Connection connection = BDOracle.abreConexaoDB2(); Statement statement = connection.cre
String
sql = ("SELECT DBMS_LOB.substr(LDTEXT, 1000) AS TEXT "
+ "FROM LONGDESCRIPTION ");
try (Connection connection = BDOracle.abreConexaoDB2();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
) {
while (resultSet.next()) {
它在这里中断:
Clob clob = (Clob) resultSet.getClob("TEXT");
long length = clob.length();
String out = clob.getSubString(1, (int) length);
}
} catch (SQLException err) {
System.out.println(err.getMessage());
}
异常返回:
ERRORCODE=-4461,SQLSTATE=42815
[jcc][t4][1092][11644][3.53.70]
无效的数据转换请求的转换的结果列类型错误
查询在数据库上运行良好,我使用的是DB2。假设
LDTEXT
是CLOB
,DBMS\u LOB.SUBSTR()
将返回VARCHAR
值,如下所示。随后,您应该使用getString()
,而不是getClob()
来检索它(并使用正确的列名——您有TEXT0
,而查询将其定义为TEXT
)。您是对的!我更改了代码并使用了“getString()”,它工作得非常好。非常感谢