本文共 1787 字,大约阅读时间需要 5 分钟。
我已经建立了一个简单的Oracle外部表测试,我(与DBA和Unix管理员一起)无法工作。
以下内容基于Oracle的External Tables Concepts。我们使用的数据库是11g。
这是外部表格定义:
drop table emp_load;
CREATE TABLE emp_load
(employee_number CHAR(5),
employee_dob DATE,
employee_last_name CHAR(20),
employee_first_name CHAR(15),
employee_middle_name CHAR(15),
employee_hire_date DATE)
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY defaultdir
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE
FIELDS (employee_number CHAR(2),
employee_dob CHAR(20),
employee_last_name CHAR(18),
employee_first_name CHAR(11),
employee_middle_name CHAR(11),
employee_hire_date CHAR(10) date_format DATE mask "mm/dd/yyyy"
)
)
LOCATION ('external_table_test.dat')
);这是“external_table_test.dat”的内容:
56november, 15, 1980 baker mary alice 09/01/2004
87december, 20, 1970 roper lisa marie 01/01/1999我能够运行创建“emp_load”的脚本而没有任何问题。我也可以很好地描述表格。当我尝试“select * from emp_load”时,出现以下错误:
SQL> select * from emp_load;
select * from emp_load
*
ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
error opening file /defaultdir/EMP_LOAD_29305.log编辑1 b>
oracle对目录具有读/写权限。
编辑2 b>
我能够通过使用下面的外部表定义来传递这个错误:
CREATE TABLE emp_load
(employee_number CHAR(3),
employee_last_name CHAR(20),
employee_middle_name CHAR(15),
employee_first_name CHAR(15)
)
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY defaultdir
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE
BADFILE DHHSMAPSIS:'EMP.BAD'
LOGFILE DHHSMAPSIS:'EMP.LOG'
FIELDS TERMINATED BY ','
)
LOCATION ('external_table_test2.dat')
)
REJECT LIMIT UNLIMITED;我的.dat文件看起来像这样...
056,baker,beth,mary
057,smith,teddy,john我必须在“EMP.BAD”,“EMP.LOG”& “external_table_test2.dat”到777才能使其工作。 oracle用户不拥有这些文件,但与文件位于同一组中。
任何想法为什么当我将这些文件的权限设置为770时,我无法实现这个功能?同样,oracle与这些文件在同一组中,所以我认为770对于权限是可以的...... b>
转载地址:https://blog.csdn.net/weixin_32697149/article/details/116411618 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!