通过 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
在远程数据库 dbr
的 xtern_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 到 jim
到 dbr
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;
我正在尝试通过 DBLINK select 外部 table 上的一组数据。但是,我收到此错误:
ORA-06564: 对象 MY_EXTERNAL_DIR 不存在 ORA-02063: 来自 foo
的前一行foo 是我的远程数据库 link。不,那张光盘上没有目录。这个目录位于远程数据库上。
我已经在本地数据库上创建了一个 VIEW 并尝试远程访问它,但没有帮助。
我是在浪费时间吗?
谢谢。
我已经对此进行了测试,可以通过数据库 link 访问外部 table。我认为您需要将(oracle 数据库对象)目录的读写权限授予您正在连接数据库 link 的用户,如果这不是拥有外部 table.
假设您有一个用户 bob
在远程数据库 dbr
的 xtern_data_dir
目录中拥有一个名为 ext_tab
的工作外部 table 并且你想通过远程用户 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;
在本地数据库上创建数据库 link 到 jim
到 dbr
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;