如何将本地UDT传递给远程数据库函数?

时间:2018-02-14 20:28:18

标签: sql oracle plsql

我正在尝试使用这个PLSQL块:

DECLARE 
  V_LOG_ENTRY I_LOG_ENTRY; 
  V_LOG_RETURN INTEGER;
BEGIN 
  V_LOG_ENTRY := I_LOG_ENTRY(arguments...); 
  V_LOG_RETURN := I_SESSION_LOGGING.WRITE_LOG_ENTRY@REMOTE(V_LOG_ENTRY, 0);
END;

WRITE_LOG_ENTRY期待I_LOG_ENTRY类型。此类型存在于本地数据库和远程数据库中。他们都有相同的OID。

当我执行该块时,我收到错误:PLS-00306: wrong number or types of arguments in call to 'WRITE_LOG_ENTRY'

WRITE_LOG_ENTRY的签名:

function WRITE_LOG_ENTRY(
      P_LOG_ENTRY I_LOG_ENTRY, P_current_log_level INTEGER DEFAULT NULL
 )

由于

1 个答案:

答案 0 :(得分:0)

我想做的事情是不可能的。

请参阅@kfinity建议的Referencing Oracle user defined types over DBLINK?,了解其他方法。