Есть ли в PL / SQL метод для преобразования / кодирования текста в XML-совместимый текст? - PullRequest
10 голосов
/ 20 января 2009

У меня есть коллега, которому нужно преобразовать текст из метода PL / SQL в XML-совместимый текст, поскольку он создает электронную таблицу Excel путем обновления текстового шаблона.

Есть ли в PL / SQL метод для преобразования / кодирования текста в XML-совместимый текст?

Ответы [ 5 ]

15 голосов
/ 21 января 2009

Ну, если вы просто хотите конвертировать символы XML, вам нужно сделать что-то вроде ...

  outgoing_text := DBMS_XMLGEN.CONVERT(incoming_text)

Где outgoing_text и incoming_text - оба VARCHAR2 или CLOB.

Вы можете указать второй аргумент, но по умолчанию он равен DBMS_XMLGEN.ENTITY_ENCODE ... он также может декодировать объекты XML, передавая DBMS_XMLGEN.ENTITY_DECODE в качестве второго аргумента.

3 голосов
/ 20 января 2009

Более поздние версии oracle имеют встроенный пакет XML для манипулирования данными XML.
Например, это то, что хочет сделать ваш коллега?

SELECT DBMS_XMLGEN.getXML('SELECT * FROM emp') FROM dual;
1 голос
/ 05 февраля 2009

В дополнение к dbms_xmlgen, вы можете использовать метод sql, xmlelement, а затем извлечь значение обратно.

select extract(xmlelement("mytest",my_variable),'mytest/text()') from dual;

Функция xmlelement сделает текст XML-совместимым, затем, используя функцию извлечения, извлечет текст как есть. (Примечание. Функция extractValue преобразует текст обратно в версию, не совместимую с XML.).

0 голосов
/ 21 января 2009

Что касается проблемы Руласа с Oracle Forms, есть много вещей, которые Forms не может сделать (в разных версиях), когда вам нужно использовать пакет базы данных.

Итак, напишите функцию PL / SQL для базы данных, которая выполняет dbms_xmlgen и возвращает varchar2 или clob, в зависимости от размера вашего XML. Затем вы можете вызвать эту функцию из форм. когда вы вернете данные обратно в формы, используйте text_io или webutil, чтобы отправить файл XML в Excel.

Или оставайтесь на стороне базы данных и используйте utl_file, чтобы отправить вывод XML в каталог, куда вы можете его получить.

0 голосов
/ 20 января 2009

Параметр hamischmcn прост и понятен, но он не работает в формах оракула, я много пробовал с этим и ничего ... вы можете создать xml вручную, используя что-то вроде

utl_file.put_line_nchar (file_id, 'xml version = "1.0" encoding = "utf-8"');

utl_file.put_line_nchar (file_id, 'Start');

- A ДЛЯ ПЕТЛИ, ГДЕ ВЫ ОПРЕДЕЛЯЕТЕ СВОИ ЛИГИ

utl_file.put_line_nchar (file_id, '/ Start');

Примечание. Редактор не позволяет мне добавлять знаки <> в заголовок xml и тегов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...