#oracle #external-tables
#Oracle #внешние таблицы
Вопрос:
Я только что обновился до Oracle 18c XE с 11g. У меня есть внешняя таблица, которая отлично работала на 11g, но я продолжаю получать следующие ошибки на 18c.
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-11604: no directory object specified for log file
Каталог существует, и у меня есть правильные разрешения.
SELECT *
FROM all_directories
WHERE directory_name = 'MYDIR';
OWNER DIRECTORY_NAME DIRECTORY_PATH ORIGIN_CON_ID
SYS MYDIR C:UserssneufOneDrivePLSQLOracleDirectory 1
У меня есть необходимые привилегии.
SELECT *
FROM all_tab_privs
WHERE table_name = 'MYDIR'
AND grantee = 'C##_SNEUF';
GRANTOR GRANTEE TABLE_SCHEMA TABLE_NAME PRIVILEGE GRANTABLE HIERARCHY COMMON TYPE INHERITED
SYS C##_SNEUF SYS MYDIR EXECUTE YES NO NO DIRECTORY NO
SYS C##_SNEUF SYS MYDIR READ YES NO NO DIRECTORY NO
SYS C##_SNEUF SYS MYDIR WRITE YES NO NO DIRECTORY NO
Я почти уверен, что мне где-то не хватает гранта, но я не могу понять, что. Может кто-нибудь, пожалуйста, помогите?
Вот моя таблица:
CREATE TABLE C##_SNEUF.CHECKING_TBL_EXT2
(
DB_KEY NUMBER,
CHECK_NUM VARCHAR2(10),
TRANS_DATE TIMESTAMP (6),
DESCRIPTION VARCHAR2(100),
DEPOSIT_WITHDRAWAL VARCHAR2(1),
AMOUNT VARCHAR2(12),
MEMO VARCHAR2(200)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY MYDIR
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
BADFILE MYDIR: 'checking.bad'
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
LDRTRIM
MISSING FIELD VALUES ARE NULL
(
DB_key CHAR,
check_num CHAR(10),
trans_date CHAR(21) DATE_FORMAT DATE MASK 'MM/DD/YYYY HH24:MI:SS',
description CHAR(100),
deposit_withdrawal CHAR(1),
amount CHAR(12),
memo CHAR(200)
)
)
LOCATION
( MYDIR: 'checking.csv'
)
)
REJECT LIMIT UNLIMITED ;
Спасибо,
Стив
Комментарии:
1. » для файла журнала не указан объект каталога». Итак, как выглядит ТАБЛИЦА CREATE (external)? Есть какая-нибудь зацепка?
2. Файл журнала не указан, поэтому — по умолчанию — он находится в том же каталоге, что и файл данных. Однако при записи в файл журнала вам требуются права на запись в каталог MYDIR. Опубликованная вами информация предполагает, что у вас есть только права на чтение, поэтому попробуйте также разрешить ЗАПИСЬ.
3. Обратите внимание, что у вас будет та же проблема с поврежденным файлом — по умолчанию будет использоваться MYDIR, поэтому, если вы отклонили строку, вам также потребуется доступ на запись в каталог.
4. У меня есть необходимые мне привилегии. Выполнение, чтение и запись.
5. @Littlefoot — Вы собираетесь добавить это в качестве ответа?
Ответ №1:
Файл журнала не указан, поэтому по умолчанию он находится в том же каталоге, что и файл данных.
Однако при записи в файл журнала вам требуются права на запись в каталоге MYDIR. Опубликованная вами информация предполагает, что у вас есть только права на ЧТЕНИЕ, поэтому разрешите также ЗАПИСЬ.