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

Alf*_*avo 3 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)
Run Code Online (Sandbox Code Playgroud)

...

试图在我的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);
Run Code Online (Sandbox Code Playgroud)

CodResponsability是BigDecimal.我也试过Double和Long,没有快乐.

在此先感谢您的帮助!

Pow*_*ord 5

这条线可能错了:

rs = ps.executeQuery(sentSQL);
Run Code Online (Sandbox Code Playgroud)

这实际上调用了Statement的executeQuery并忽略了你绑定的变量.

它应该是

rs = ps.executeQuery();
Run Code Online (Sandbox Code Playgroud)