Я установил простой тест внешней таблицы Oracle, который я (вместе с администратором баз данных и администратором Unix) не могу заставить работать.
Нижеследующее основано на концепции внешних таблиц Oracle . Мы используем базу данных 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». Также могу описать таблицу нормально. Когда я пытаюсь "выбрать * из 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
oracle имеет разрешения на чтение / запись в каталоге.
РЕДАКТИРОВАТЬ 2
Мне удалось передать эту ошибку, используя следующее определение внешней таблицы:
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 подойдет для разрешений ...