首页 > 解决方案 > java.sql.SQLException:构造描述符失败:参数无效

问题描述

当我需要将自定义类型作为参数传递给我的存储过程时,出现以下异常

Caused by: java.sql.SQLException: Fail to construct descriptor: Invalid arguments
    at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:114) ~[ojdbc8_g.jar:12.2.0.1.0]
    at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:75) ~[ojdbc8_g.jar:12.2.0.1.0]
    at oracle.sql.OracleSQLOutput.writeObject(OracleSQLOutput.java:369) ~[ojdbc8_g.jar:12.2.0.1.0]

这里stackstrace的最后一行是从此方法调用的

public static void writeObject(SQLData object, SQLOutput stream) throws SQLException {
    stream.writeObject(object);
}

object我的自定义 SQL 类型在哪里。

这里可能有什么问题?

添加了 Java 对象

public class Object extends SQLBaseObject {

    public static final String BASE_TYPE_NAME = "object_obj";
    public static final String ARR_TYPE_NAME = "object_arr";

    private Attribute attribute_;
.
.
.
    @Override
    public void writeSQL(SQLOutput stream) throws SQLException {
        super.writeSQL(stream);
        writeObject(attribute_, stream);

标签: javaoraclejdbc

解决方案


推荐阅读