我正在尝试通过 DBLINK 在外部表上选择一组数据。但是,我收到了这个错误:
ORA-06564: 对象 MY_EXTERNAL_DIR 不存在 ORA-02063: 来自 foo 的前一行
foo 是我的远程数据库链接。不,该光盘上没有目录。该目录位于远程数据库上。
我在本地数据库上创建了一个 VIEW 并尝试远程访问它,但它没有帮助。
我在浪费时间吗?
谢谢你。
我正在尝试通过 DBLINK 在外部表上选择一组数据。但是,我收到了这个错误:
ORA-06564: 对象 MY_EXTERNAL_DIR 不存在 ORA-02063: 来自 foo 的前一行
foo 是我的远程数据库链接。不,该光盘上没有目录。该目录位于远程数据库上。
我在本地数据库上创建了一个 VIEW 并尝试远程访问它,但它没有帮助。
我在浪费时间吗?
谢谢你。
我已经对此进行了测试,并且可以通过数据库链接访问外部表。我认为您需要将(oracle 数据库对象)目录的读取和写入权限授予您将 db 链接连接到的用户,如果这不是拥有外部表的用户。
假设您有一个用户bob
拥有一个在远程数据库目录中调用ext_tab
的工作外部表,并且您希望通过远程用户访问该表xtern_data_dir
dbr
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;
在本地数据库上创建 db 链接jim
到dbr
CREATE DATABASE LINK dbr CONNECT TO jim IDENTIFIED BY "passwd" USING 'DBR';
现在选择将起作用
SELECT * FROM bob.ext_tab@DBR;
@Lunc,谢谢!
我几乎可以肯定,远程访问外部表是不可能的。直到你的帖子!:)
我已经成功地选择了我的数据,这个有帮助。
GRANT ALL ON DIRECTORY MY_DIRECOTY TO PUBLIC;