我具有以下基础结构:
装有Windows操作系统的本地计算机,名为A,安装了Oracle 12c。 具有Windows操作系统的远程计算机(名为B)映射到计算机A。
我正在尝试从Oracle(计算机A)的内部表在B上创建一个外部表“ AS SELECT”。
为此:
我在Oracle中创建了一个目录:
创建或替换目录external_test_dir为'h:\ external_test_dir';
我在Oracle中创建了一个内部表:
创建表TEST_INT(ID号,文本varchar2(100));
在TEST_INT表中插入值:
插入TEST_INT值(1,“测试1”);
插入TEST_INT值(2,“测试2”);
尝试从远程位置的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的同一台机器上尝试了一个外部表的相同示例,并且工作正常。
谢谢
答案 0 :(得分:1)
您需要确保Oracle具有对EXTERNAL_TEST_DIR
的读/写访问权限,因为它必须能够将日志写到同一目录中。有关更多详细信息,请参见this link。