0

我需要调用这个 Oracle 函数,它从 groovy 脚本(SOAPUI)返回一个 RECORD 类型的值。然后从结果中捕获字段值 ID1。

甲骨文功能:

FUNCTION ReserveParams(p_Data SYS.XMLType, p_USER_ID number) return TParams;

和返回结果的类型:

type TParams is record(
ID     number := null,    
PAR1    varchar2(100) := null,   
PAR2    SYS.XMLType,        
ID1    number := null,     
ErrorCode   NUMBER(14)     := 0, 
ErrorMesage VARCHAR2(4000) := null  );

使用闭包运行 groovy.sql 方法 sql.execute 我没有为闭包获得任何价值。当我使用 sql.call 时,我收到一个错误,因为我无法在此处定义结果类型。我觉得我有一个错误,但找不到正确的解决方案。有谁能够帮我?

这是我从 GROOVY 脚本调用的 2 种类型的代码:

def p_Data varchar2(1000 Byte) = '<RESERV><ID>222222</ID><AGRTYPE>1</AGRTYPE></RESERV>'
def p_User = 9999
sql.execute("DECLARE 
result TParams;
p_Data varchar2(10000 Byte) := +p_Data+ ;
p_USER_ID NUMBER := +p_User+ ;
ID1 NUMBER;
BEGIN 
   result := ReserveParams (     
                P_DATA      => XMLTYPE (p_Data),
                p_USER_ID   => p_USER_ID);
   ID1 := result.ID1; 
END;")
{ID1 -> log.info  ID1}
res = sql.call ("{call ReserveParams(?,?,?)}", [p_Data, p_User, ?????TParams])
4

0 回答 0