【问题标题】:create a remote external tables创建远程外部表
【发布时间】:2018-11-20 13:24:35
【问题描述】:

我有以下基础设施:

装有 Windows 操作系统的本地计算机,名为 A,安装了 Oracle 12c。 带有 Windows 操作系统的远程机器,名为 B,映射到机器 A。

我正在尝试从 Oracle(机器 A)的内部表中创建 B 上的外部表“AS SELECT”。

为此:

  1. 我在 Oracle 中创建了一个目录:

    创建或替换目录 external_test_dir 为 'h:\external_test_dir';

  2. 我在 Oracle 中创建了一个内部表:

    创建表TEST_INT(id号,文本varchar2(100));

  3. 在 TEST_INT 表中插入值:

    插入 TEST_INT 值 (1, 'test 1');

    插入 TEST_INT 值 (2, 'test 2');

  4. 尝试从远程位置的 TEST_INT 表中选择创建外部表 TEST_EXT。

我收到以下错误消息:

Error starting at line 58 in command:
create table TEST_EXT
organization external 
  (
      type ORACLE_DATAPUMP
      default directory EXTERNAL_TEST_DIR 
      location ('TEST_EXT_FILE.csv')
   )
   parallel 2
   as
   select *
    from TEST_INT
Error at Command Line:58 Column:1
Error report:
SQL Error: ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04001: error opening file h:\external_test_dir\TEST_EXT_2480_11532.log
29913. 00000 -  "error in executing %s callout"
*Cause:    The execution of the specified callout caused an error.
*Action:   Examine the error messages take appropriate action.

谁能告诉我应该怎么做才能解决这个错误?

PS:我尝试了与 DB Server 在同一台机器上的外部表的相同示例,它工作得很好。

谢谢,

【问题讨论】:

    标签: sql oracle remote-access external-tables


    【解决方案1】:

    您需要确保 Oracle 具有对 EXTERNAL_TEST_DIR 的读/写访问权限,因为它必须能够将日志写入同一目录。详情请参阅this link

    【讨论】:

    • 要扩展@dcp 的答案,构成外部表的文件需要对数据库服务器“可见”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    相关资源
    最近更新 更多