2

我在模式 A 中有表“测试”,并且从模式 BI 想要运行测试查询。所以创建了 DBlink 到 A.test 和 dblink name 'dbl_test' 。

现在,我可以查询为

select * from test@dbl_test;

但是当我尝试TYPE v_id IS TABLE OF test@dbl_test.id%TYPE;在带有游标的 plsql 过程块中使用时,它给出了必须声明的错误,并且 dbl_test 是另一个数据库并且无法访问。

当我查询 select 语句时它正在工作,为什么不用于 TYPE?

4

2 回答 2

3

将列放在@

TYPE v_id IS TABLE OF test.id@dbl_test%TYPE;
于 2013-03-21T18:57:23.247 回答
1

数据库链接用于链接两个数据库,而不是模式。

在您的情况下,不清楚您是否真的需要数据库链接。您的两个模式是否在同一个数据库中?如果是,您只需授予模式 B 的相关权限,他将能够引用模式 A 的数据类型。我认为GRANT SELECT ON A.TEST TO B应该足以引用它的数据类型。

编辑:实际上可以引用远程数据类型(我不知道!)请参阅@jonearles 的答案

于 2013-03-21T17:17:04.460 回答