Это процедура PL/SQL, которую я пытаюсь запустить. Проблема, с которой я столкнулся с недопустимым каталогом. Я запускаю Oracle 11g На сервере Windows. У меня есть клиент, настроенный на другой машине, которая является Linux-машиной. Я попытался проверить файл init.ora, чтобы установить путь к каталогу, но похоже, что пакет futil не поддерживается в версии 11g Windows oracle версииDBMS_XSLPROCESSOR.CLOB2FILE - Ошибка Недопустимый путь к каталогу
Я импортирую один столбец из таблицы, где его XML_clob (XML, хранящийся в связке), тип столбца - это CLOB в этом случае и дамп в файл. Цените, если лучше процедура PL/SQL доступна для преобразования всего столбца в один файл и хранить в каталоге с помощью клиентской машины
Цените ответы для руководства к моей проблеме
UPDATE
CREATE or REPLACE PROCEDURE
process_all_rows
IS
TYPE clob_aat
IS TABLE OF minf100k300wclob%xml_clob
INDEX BY PLS_INTEGER;
l_XML clob_aat;
BEGIN
select XMLElement(xml_clob).getClobVal()
BULK COLLECT INTO l_XML
FROM minf100k300wclob;
FOR indx IN 1 .. L_XML.COUNT
LOOP
dbms_lob.append(L_XML, 'XML_EDI_FILES_1', 'file1.xml', nls_charset_id('AL32UTF8'));
END LOOP;
END process_all_rows;
Я не могу получить эту работу, как я получаю сообщение об ошибке, как показано ниже
ошибки для PROCEDURE PROCESS_ALL_ROWS:
LINE/COL ERROR
-------- -----------------------------------------------------------------
4/4 PL/SQL: Item ignored
5/33 PLS-00208: identifier 'XML_CLOB' is not a legal cursor attribute
12/22 PLS-00382: expression is of wrong type
18/7 PL/SQL: Statement ignored
18/7 PLS-00306: wrong number or types of arguments in call to 'APPEND'
SQL>
enter code here
У меня проблема решена для первой проблемы, спасибо за это. однако я пытаюсь создать хранимую процедуру для использования массового сбора, чтобы помещать xml-файлы, хранящиеся в базе данных, в переменную, вы можете игнорировать третью проблему, поскольку я мог напрямую использовать WINSCP для передачи файла дампа, созданного на сервере базы данных Oracle. Я обновил свою хранимую процедуру в вопросе – user3764303
У вас есть пара вопросов в новой процедуре. два слова 'procedure', некоторые дополнительные' # 'посередине,' TABLE of minfclob100k300w% clob' должно быть 'IS TABLE OF minfclob100k300w% xml_clob',' clob2file' - это процедура, которая не является функцией, поэтому ваша компиляция завершится неудачей на 'analy_compensation ', не говоря уже о том, что не ясно, что вы пытаетесь достичь этим.Кроме того, вам не требуется массовый сбор, если вы просто зацикливаетесь над ними, простой курсор будет делать. Что еще более важно, 'clob2file' будет всегда переписываться - вам нужно построить полный clob с' dbms_lob.append', а затем написать один раз. – Timekiller
Я пытаюсь поместить столбец в файл дампа на сервере базы данных с помощью select xml_clob из в каталоге, указанном в XML_EDI_FILES, с файлом file1.xml. Не могли бы вы отредактировать код и поместить его, если сможете понять мою проблему, да, вы правы, я получаю ошибку компиляции с помощью файла clob2 даже после удаления analytse_compensation. –
user3764303