[英]oracle collection as function return type
我们具有数据库功能来缓存序列值。 它接受序列对象名称和访存大小,递增序列并返回值。 返回类型是一个oracle集合。
这是函数使用的数据库类型的定义:
create or replace type icn_num_type as object(v_inc_num number);
create or replace type icn_num_type_table as table of icn_num_type; --this is returned
函数返回的值在应用程序端缓存。 我们将ibatis用于DAO。 当函数,类型和序列对象都在同一模式中时,所有这些工作都很好。
现在,我们在一个父模式中定义了函数,类型和序列。 用户架构具有上述所有对象的同义词。 我现在面临以下错误:
--- The error occurred while executing query procedure.
--- Check the {? = call seq_inc(?, ?)}.
--- Check the output parameters (register output parameters failed).
--- Cause: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
ORA-06512: at "SYS.DBMS_PICKLER", line 18
ORA-06512: at "SYS.DBMS_PICKLER", line 58
ORA-06512: at line 1
但是,当我们从SQLDeveloper(用户架构)访问该函数时,它可以正常工作。
有人可以帮我解决这个问题吗?
似乎9iR2 for Java中存在同义词和对象类型的问题(限制/错误)。 适用于ORA-21700和DBMS_PICKLER的Google
我怀疑您对于iBatis使用的JDBC驱动程序存在一些问题,该问题已解决为用于SQL Developer的JDBC版本。
拿起SQuirrel SQL Client之类的东西,然后尝试使用iBatis的JDBC驱动程序,以查看是否可以复制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.