Getting SQLDialectNotSupportedException : Not supported by dialect : Type class

Viewed 29

Here is the sample generated code and error log:

++++++++++++++ Type Counter_tbl is TABLE of Counter_type index by binary_integer;

++++++++++++++ Generated class:

public class ContactTblRecord extends AssociativeArrayRecordImpl<Integer, ContactTypeRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * Create a new <code>APPS.xxxxx.CONTACT_TBL</code> record
     */
    public ContactTblRecord() {
   
        super(Apps.APPS, xxxx.XX_XX_XX, "CONTACT_TBL",
            com.example.springbootjooqdemo.jooq.sample.model.packages.xxxx.udt.ContactType.CONTACT_TYPE.getDataType(), SQLDataType.INTEGER);
    }

}

++++++++++++

Error Log:

2022-09-01 15:06:13.938  WARN 50921 --- [nio-9193-exec-1] .S.o.j.e.SQLDialectNotSupportedException : Not supported by dialect : Type class com.example.springbootjooqdemo.jooq.sample.model.packages.test.udt.records.ContactTblRecord is not supported in dialect ORACLE
2022-09-01 15:06:13.952 ERROR 50921 --- [nio-9193-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.jooq.exception.DataAccessException: SQL [null]; Error while writing value at JDBC bind index: 68] with root cause

org.jooq.exception.SQLDialectNotSupportedException: Type class com.example.springbootjooqdemo.jooq.sample.model.packages.test.udt.records.ContactTblRecord is not supported in dialect ORACLE
    at org.jooq.impl.DefaultDataType.getDataType(DefaultDataType.java:835) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.DefaultDataType.getDataType(DefaultDataType.java:779) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.DefaultBinding$DefaultOtherBinding.set0(DefaultBinding.java:3561) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.DefaultBinding$InternalBinding.set(DefaultBinding.java:1010) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.DefaultBindContext.bindValue0(DefaultBindContext.java:63) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractBindContext.bindValue(AbstractBindContext.java:74) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AssociativeArrayConstant.bind0(AssociativeArrayConstant.java:120) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AssociativeArrayConstant.accept(AssociativeArrayConstant.java:84) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractBindContext.bindInternal(AbstractBindContext.java:258) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractBindContext.visit0(AbstractBindContext.java:68) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractContext.visit(AbstractContext.java:340) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractContext.visit(AbstractContext.java:254) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractRoutine.bind1(AbstractRoutine.java:717) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractRoutine.bind0(AbstractRoutine.java:662) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractRoutine.accept(AbstractRoutine.java:612) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractBindContext.bindInternal(AbstractBindContext.java:258) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractBindContext.visit0(AbstractBindContext.java:68) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractContext.visit(AbstractContext.java:340) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractRoutine.executeCallableStatement(AbstractRoutine.java:549) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractRoutine.execute(AbstractRoutine.java:386) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.Tools.attach(Tools.java:1518) ~[jooq-3.17.3.jar:na]
    at org.jooq.impl.AbstractRoutine.execute(AbstractRoutine.java:366) ~[jooq-3.17.3.jar:na]
1 Answers

Thanks for the additional details in your bug report: https://github.com/jOOQ/jOOQ/issues/13957

As of jOOQ 3.17.2, there seems to be a bug when using associative arrays of objects in jOOQ as procedure/function IN parameters. They're currently only supported as OUT parameters. I.e. a type like this:

create type o as object (n number);
create package p as
  type t is table of o index by pls_integer;
  procedure p (t t);
end p;
/
Related