Кажется, что у меня проблема, когда я добавляю предложение препроцессора во внешний оператор внешней таблицы. Без линии препроцессора все работает нормально, но как только я добавляю его, я получаю различные ошибки в зависимости от того, где я помещал его в блок параметров доступа, они должны быть в определенном порядке? Я не могу найти похожие проблемы в Интернете.Препроцессор в внешних таблицах Oracle
Редактировать: Также как примечание, я знаю, что вы можете использовать препроцессор для подачи в заархивированном файле во внешнюю таблицу. Если я хочу прочитать zipped-файл И добавить имя файла так же просто, как просто поместить его в один файл оболочки?
CREATE TABLE (
column1 VARCHAR2(40),
column2 VARCHAR2(40)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY DMPDIR
ACCESS PARAMETERS(
RECORDS DELIMITED BY NEWLINE
LOGFILE DMPDIR:'test.log'
BADFILE DMPDIR:'test.bad'
fields terminated by '^'
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
preprocessor DMPDIR: 'append_filename.sh'
)
LOCATION (DMPDIR: 'testfile.dat')
);
append_filename.sh
#!/bin/bash
sed -e 's!$!,'"${1##*/}"'!' $1
Должны ли мы предположить ошибки? Предполагаем ли вы угадать вашу версию Oracle? –
Oracle 11.2.0.3.0 так поддерживает препроцессор, я считаю. Я могу дать вам ошибки, но это другая ошибка, в зависимости от того, какую строку я перемещаю в инструкции препроцессора в блок access_parameters ... поэтому мне было интересно, требуется ли какой-то определенный заказ или я сделал что-то явно неправильное. –
Я отправил пример в свой ответ. –