问题是:我正在为包含以下字段(以及其他字段)的表中的查询设置一个 preparedStatement:
TABLE1_RSPN NUMBER(8,0)
TABLE1_AFDV NUMBER(8,0)
TABLE1_VALUE NUMBER(17,2)
TABLE1_NOTE VARCHAR2(255 BYTE)
TABLE1_USR VARCHAR2(20 BYTE)
...
为了向我的 Java 应用程序获取一些信息,我设置了一个 preparedStatement,它引发了 Oracle 异常 ORA-03115 不支持的网络数据类型或表示。
相关的Java代码是这样的:
sentSQL = "SELECT TABLE1.*, TABLE2.CIAS FROM TABLE1, TABLE2 WHERE TABLE1_RSPN = ?" +
" AND TABLE2_AFDV = TABLE1_AFDV";
ps = con.prepareStatement(sentSQL);
ps.setBigDecimal(1, dto.getCodResponsability());
rs = ps.executeQuery(sentSQL);
CodResponsability 是 BigDecimal。我也尝试过使用 Double 和 Long,但并不愉快。
预先感谢您的帮助!
最佳答案
这一行可能是错误的:
rs = ps.executeQuery(sentSQL);
这实际上调用了 Statement's executeQuery并忽略您绑定(bind)的变量。
应该是
rs = ps.executeQuery();
关于java - 带有 setBigDecimal 参数的 Java preparedStatement 引发 ORA-03115,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299922/