1

我正在尝试通过 DBLINK 在外部表上选择一组数据。但是,我收到了这个错误:

ORA-06564: 对象 MY_EXTERNAL_DIR 不存在 ORA-02063: 来自 foo 的前一行

foo 是我的远程数据库链接。不,该光盘上没有目录。该目录位于远程数据库上。

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

我在浪费时间吗?

谢谢你。

4

2 回答 2

1

我已经对此进行了测试,并且可以通过数据库链接访问外部表。我认为您需要将(oracle 数据库对象)目录的读取和写入权限授予您将 db 链接连接到的用户,如果这不是拥有外部表的用户。

假设您有一个用户bob拥有一个在远程数据库目录中调用ext_tab的工作外部表,并且您希望通过远程用户访问该表xtern_data_dirdbrjim

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;

在本地数据库上创建 db 链接jimdbr

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

现在选择将起作用

SELECT * FROM bob.ext_tab@DBR;
于 2016-11-25T10:36:12.770 回答
0

@Lunc,谢谢!

我几乎可以肯定,远程访问外部表是不可能的。直到你的帖子!:)

我已经成功地选择了我的数据,这个有帮助。

GRANT ALL ON DIRECTORY MY_DIRECOTY TO PUBLIC;
于 2016-11-25T12:22:07.370 回答