1

使用Struct对象将数据从 java 发送到数据库存储过程。

对于这个需要StructDescriptor类,使用下面的代码创建。

StructDescriptor.createDescriptor(sqlTypeName, conn);

在我的 spring 应用程序中,当我第一次执行此语句时。上面的语句在返回structDescriptor对象的同时保留在连接对象中。

正如我在StructDescriptor类代码(API 代码)中看到的,

((oracle.jdbc.OracleConnection) conn).putDescriptor(qualifiedName, descriptor);

第二次开始,使用相同的连接,并且对象来自连接对象(不是新创建的)。

所以,如果我在数据库中编译对象类型并调用存储过程会抛出异常说

invalid data type..

在这里,我不想StructDescriptor从 Connection 中获取对象。而不是再次从连接对象获取它需要重新创建。我可能要求每次在调用以下语句之前,最好从连接对象中删除描述符。但我不能

StructDescriptor.createDescriptor(sqlTypeName, conn);

..

如何从连接中删除描述符(从连接池中获取)?

4

0 回答 0