问题描述
你好,汤姆 :)
我尝试在java存储过程中制作anytype,并使用它在PL/SQL中创建anydataset。但我得到错误ORA-22625。为什么会发生此错误,如何解决?我根据指南来做,例如https://docs.oracle.com/database/121/JJDBC/oraint.htm#JJDBC28154,示例4-2和4-3。
脚本https://livesql.oracle.com/apex/livesql/s/ie97h511l4nyenahzz0kxb3lp在Oracle数据库12.1上重现错误,但看起来像LiveSQL不支持java,所以错误那里不是真实的。
这个在java中创建的anytype看起来不错,我在PL/SQL中检查了它的结构。
如果我在PL/SQL中创建anytype,它可以正常工作。
谢谢你这些年来的出色工作,汤姆!:)
我尝试在java存储过程中制作anytype,并使用它在PL/SQL中创建anydataset。但我得到错误ORA-22625。为什么会发生此错误,如何解决?我根据指南来做,例如https://docs.oracle.com/database/121/JJDBC/oraint.htm#JJDBC28154,示例4-2和4-3。
脚本https://livesql.oracle.com/apex/livesql/s/ie97h511l4nyenahzz0kxb3lp在Oracle数据库12.1上重现错误,但看起来像LiveSQL不支持java,所以错误那里不是真实的。
这个在java中创建的anytype看起来不错,我在PL/SQL中检查了它的结构。
如果我在PL/SQL中创建anytype,它可以正常工作。
谢谢你这些年来的出色工作,汤姆!:)
专家解答
我可以重现这个问题。我不确定为什么要得到这个; ANYTYPE/ANYDATASET并不是我的强项;)
我在内部打听。
也就是说,如果你使用纯PL/SQL,这是可行的-为什么你使用Java存储过程?
将Java中的PL/SQL粘贴回PL/SQL,对我来说没有错误:
我在内部打听。
也就是说,如果你使用纯PL/SQL,这是可行的-为什么你使用Java存储过程?
将Java中的PL/SQL粘贴回PL/SQL,对我来说没有错误:
DECLARE atyp anytype; outset anydataset ; BEGIN begin anytype.begincreate( dbms_types.typecode_object, atyp ); atyp.addattr ( 'f1' , dbms_types.typecode_number , null , null , null , null , null ) ; atyp.addattr ( 'f2' , dbms_types.typecode_varchar2 , NULL , NULL , 100 , null , null ) ; atyp.endcreate; end; anydataset.begincreate( dbms_types.typecode_object, atyp, outset ); for i in 1 .. 5 loop outset.addinstance; outset.piecewise(); outset.setnumber( i ); outset.setvarchar2( 'row: ' || to_char( i ) ); end loop; outset.endcreate; dbms_output.put_line ( 'Finished' ); END ; / Finished复制
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。