通过 DBLINK 的外部 Table

External Table via DBLINK

我正在尝试通过 DBLINK select 外部 table 上的一组数据。但是,我收到此错误:

ORA-06564: 对象 MY_EXTERNAL_DIR 不存在 ORA-02063: 来自 foo

的前一行

foo 是我的远程数据库 link。不,那张光盘上没有目录。这个目录位于远程数据库上。

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

我是在浪费时间吗?

谢谢。

我已经对此进行了测试,可以通过数据库 link 访问外部 table。我认为您需要将(oracle 数据库对象)目录的读写权限授予您正在连接数据库 link 的用户,如果这不是拥有外部 table.

假设您有一个用户 bob 在远程数据库 dbrxtern_data_dir 目录中拥有一个名为 ext_tab 的工作外部 table 并且你想通过远程用户 jim

访问 table
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;

在本地数据库上创建数据库 link 到 jimdbr

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

现在 select 可以使用

SELECT * FROM bob.ext_tab@DBR;

@Lunc,谢谢!

我几乎可以肯定无法远程联系到外部 table。直到你的post! :)

我已经设法 select 我的数据,这个很有帮助。

GRANT ALL ON DIRECTORY MY_DIRECOTY TO PUBLIC;