2013-03-21 42 views
2

我有模式A中的表'测试'和模式B我想运行测试查询。 因此创建DBlink到A.test和dblink名称'dbl_test'。TYPE v_id IS table of [email protected]%type;

现在,我能够查询作为

select * from [email protected]_test; 

但是当我尝试在PLSQL程序块使用TYPE v_id IS TABLE OF [email protected]_test.id%TYPE;用游标,它给错误,必须声明并dbl_test是另一个数据库无法访问。

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

回答

1

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

在你的情况,目前还不清楚你是否真的需要数据库链接。你的两个模式在同一个数据库中吗?如果它们是,你只需要给模式B的相关权利,他就可以引用模式A的数据类型。我认为GRANT SELECT ON A.TEST TO B应该足以引用其数据类型。

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

+0

感谢您的澄清。如果我想为远程数据库表创建变量类型,我该如何实现这一点。 – user2196111 2013-03-21 17:51:26

+2

@Vincent你实际上可以创建这种依赖关系。虽然这有点不同寻常,但对类型进行硬编码可能更好。 – 2013-03-21 19:00:32

3

@之前把柱:

TYPE v_id IS TABLE OF [email protected]_test%TYPE; 
+0

+1:学到新东西:) – 2013-03-22 08:25:52

+0

感谢您的帮助。 – user2196111 2013-03-22 20:39:14

相关问题