我有两个模式:A 和 B (Oracle 9)。在 A 处有一个到 B 的 dblink。在 B 处有一个包,我从 A 调用它。B 包中的过程可以返回不同的计数结果,因此我认为返回一个集合是更好的方法。
create type B.tr_rad as object (
name varchar2(64)
,code number
,vendor number
,val varchar2(255)
,num number
);
create type B.tt_rad as varray(256) of B.tr_rad;
但是从 A 方案我不能使用 tt_rad 类型,因为不支持通过 dblink 使用 SQL 类型。DBMS_SQL 不支持游标。创建具有相同 OID 的类型是不可能的。
我认为使用临时表。但首先它不是那么好(远程函数返回值后,调用方必须从远程表中选择集合)。人们担心临时表的工作会放缓。
也许谁知道替代交互?