Установите Clob в собственном запросе JPA

#jpa #nativequery

Вопрос:

Мне нужно передать некоторое Clob значение select оператору, используя собственный способ запроса, поэтому я не могу использовать здесь сопоставление сущностей.

Это код, который я запускаю:

 String strQuery =
    "select admin.pkg_ddl.get_table_alterddl(:src, :dst) ddl "  
    "from dual";

Query query = toptEntityManager.createNativeQuery(strQuery);

query.setParameter("src", srcTable);
query.setParameter("dst", dstTable);

Object obj = query.getSingleResult();       
 

Где toptEntityManager javax.persistence.EntityManager

Но я получаю ошибку:

 select DBMS_METADATA.get_sxml('TABLE', 'EDO_DOC_OUT', 'GLOBALREF', '11.2.0','ORACLE','SXML') as xml from dual
extracted value ([XML] : [CLOB]) - [{clob}]
select admin.pkg_ddl.get_table_alterddl(?, ?) ddl from dual
binding parameter [1] as [VARBINARY] - [oracle.sql.CLOB@415bcbc3]
binding parameter [2] as [VARBINARY] - [oracle.sql.CLOB@2099912e]
SQL Error: 6553, SQLState: 65000
ORA-06553: PLS-306: wrong number or types of arguments in call to 'GET_TABLE_ALTERDDL'
 

Я могу успешно выполнить этот запрос из SqlDeveloper :

 with t1 as (
    select DBMS_METADATA.get_sxml ('TABLE', 'TABLE_SRC', 'ADMIN', '11.2.0','ORACLE','SXML') as xml 
    from dual
), t2 as (
    select DBMS_METADATA.get_sxml ('TABLE', 'TABLE_DST', 'ADMIN', '11.2.0','ORACLE','SXML') as xml 
    from dual
)
select admin.pkg_ddl.get_table_alterddl(t1.xml, t2.xml) ddl
from t1, t2;
 

В чем может быть проблема с запросом JPA здесь?