java - 带有 setBigDecimal 参数的 Java preparedStatement 引发 ORA-03115

标签 java oracle prepared-statement

问题是:我正在为包含以下字段(以及其他字段)的表中的查询设置一个 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/

相关文章:

java - 当某些条件不成立时中断文件上传

Java - 对 ArrayList 进行排序

java - JSP——表达式语言

java - 如何从 firebase 检索特定的数据列表

sql - 如何从当前行和上一行中获取唯一项的总和,但忽略重复项 Oracle SQL

python - Python 3 和 MySQL 连接器的 Unicode 和参数数量错误

python - 使用 Jython 和 zxJDBC 进行具有多行值的 SQL INSET

sql - 检查字符串是否是格式正确的 xml

sql - PL/SQL 中对象类型的 typeof 等价物

java - 准备好的语句失败,但 SQL 控制台有效