2016-11-25 80 views
1

我想通过DBLINK在外部表上选择一组数据。我得到,然而,这样的错误:通过DBLINK的外部表

ORA-06564:从富前行

foo是我的远程数据库链接:对象MY_EXTERNAL_DIR不存在ORA-02063。不,该盘上没有目录。该目录位于远程数据库中。

我在本地数据库上创建了一个VIEW并试图远程访问它,但它没有帮助。

我在浪费时间吗?

谢谢。

+0

你可以请你发布你如何选择它。发布您的选择声明。 – XING

+0

当然,select * from my_table @ foo – Ogun

回答

1

我测试过了,可以通过数据库链接访问外部表。我认为,如果这不是拥有外部表的用户,那么您将需要将(oracle数据库对象)目录的读写权限授予要连接数据库链接的用户。

假设你有一个用户bob拥有工作外部表的远程数据库dbrxtern_data_dir目录中称为ext_tab,你想通过远程用户jim

CREATE USER jim IDENTIFIED BY "passwd"; 

GRANT CREATE SESSION to jim; 

GRANT SELECT ON bob.ext_tab TO jim; 

GRANT READ, WRITE ON DIRECTORY xtern_data_dir TO jim; 

访问该表在本地数据库中创建数据库链接jimdbr

CREATE DATABASE LINK dbr CONNECT TO jim IDENTIFIED BY "passwd" USING 'DBR'; 

现在选择将工作

SELECT * FROM [email protected]; 
0

@Lunc,谢谢!

我几乎可以确定无法远程访问外部表。直到你的帖子! :)

我已经设法选择我的数据,这一个帮助。

GRANT ALL ON DIRECTORY MY_DIRECOTY TO PUBLIC; 
+0

这样做可以完成工作,但是让所有人对数据库服务器上的目录拥有所有权利通常都是严重的安全风险,并且最好避免。 – Lunc