Сериализация строки Oracle в XML - PullRequest
7 голосов
/ 29 января 2009

Я хочу создать хранимую процедуру, которая берет имя таблицы и row_id и может сериализовать ее в строку XML.

Таблица может содержать сгустки и капли.

Могу ли я сделать это в PL / SQL или я должен использовать Java?

Основная цель для этого состоит в том, чтобы иметь таблицу со всеми обновлениями и удалениями в некоторых таблицах, сохраняя X последних версий или X дней данных (таблица будет содержать что-то вроде chg_date(default:sysdate), chg_type(U or D), chg_xml и, возможно, с некоторыми метаданными о пользователе).

Возможное использование: - Он также может хранить все данные и использоваться в качестве журнала - Возможность вернуть строку к любому предыдущему значению. - Возможность делать EDI в определенном формате.

Я не хочу использовать для этого ретроспективные запросы Oracle, поскольку нет гарантии доступности данных.

1 Ответ

6 голосов
/ 29 января 2009

В Oracle есть функция для возврата запроса в формате xml.

В этом примере замените & table на имя вашей таблицы, а & rowid на rowid. Я проверил это, и, кажется, работает с сгустками и каплями. Для BLOB-объектов он возвращает данные в шестнадцатеричном формате.

SELECT DBMS_XMLGEN.getxmltype ('select * from &table_name where rowid = ''&rowid''' )
  FROM DUAL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...