¿Hace referencia a los tipos definidos por el usuario de Oracle sobre DBLINK?

Estoy trabajando en dos esquemas diferentes de Oracle en dos instancias diferentes de Oracle. He definido varios tipos y colecciones de tipos para transferir datos entre estos esquemas. El problema con el que me encuentro es que, aunque el tipo tiene exactamente las mismas definiciones (los mismos scripts utilizados para crear ambos conjuntos en los esquemas), Oracle los ve como objetos diferentes que no son intercambiables.

Pensé en convertir el objeto de tipo remoto entrante como el mismo tipo local, pero recibo un error sobre la referencia de tipos a través de dblinks.

Esencialmente, estoy haciendo lo siguiente:

DECLARE
  MyType  LocalType; -- note, same definition as the RemoteType (same script)
BEGIN
  REMOTE_SCHEMA.PACKAGE.PROCEDURE@DBLINK( MyType );  -- MyType is an OUT param
  LOCAL_SCHEMA.PACKAGE.PROCEDURE( MyType ); -- IN param
END;

Eso falla porque la llamada al procedimiento REMOTE no puede entender MyType ya que trata LocalType y RemoteType como diferentes tipos de objetos.

Intenté DECLARAR MyType de la siguiente manera también:

  MyType REMOTE_SCHEMA.RemoteType@DBLINK;

pero recibo otro error acerca de los tipos de referencia en dblinks. CASTING entre tipos tampoco funciona porque para emitir, necesito hacer referencia al tipo remoto en dblink: el mismo problema, el mismo error. También he intentado usar SYS.ANYDATA como el objeto que cruza entre las dos instancias, pero recibe un error similar.

¿Algunas ideas?

ACTUALIZAR: Intenté declarar el tipo de objeto en ambos lados del DBLINK usando el mismo OID (recuperado manualmente usandoSYS_OP_GUID()) pero Oracle todavía "ve" los dos objetos como diferentes y arroja un error de "número incorrecto o tipos de argumentos".

Respuestas a la pregunta(2)

Su respuesta a la pregunta