Вставка данных в формате XML в базу данных Oracle

#sql #oracle

#sql #Oracle

Вопрос:

Моя задача — получить данные из одной базы данных (не Oracle db) и вставить эти данные в другую базу данных (oracle).

Я могу получить данные из исходной базы данных в виде XML. Теперь я должен передать этот XML в качестве входных данных в базу данных Oracle, чтобы все данные внутри XML были вставлены в таблицу базы данных oracle.

Может ли кто-нибудь, пожалуйста, указать мне, какой код для выполнения того же самого. Я довольно привык к SQL Server 2005.

Если кто-нибудь может подсказать, как вставить данные в формате XML в таблицу, это было бы большим подспорьем.

Комментарии:

1. Я так понимаю, вы хотите разобрать xml на столбцы?

2. Вы экспортируете и импортируете данные из одной таблицы? Или данные нескольких таблиц, возможно, связаны ссылками между таблицами? Прав ли я в том, что вы не хотите хранить данные в формате XML, но XML используется просто как средство обмена данными? Насколько велик такой XML-файл? Мы говорим о мегабайтах, гигабайтах или терабайтах?

3. можете ли вы опубликовать образец xml?

Ответ №1:

Это настолько общее, насколько я могу это сделать, не видя структуру xml..

 create or replace procedure put_stuff_into_table(source_xml_doc xmltype) AS

BEGIN

insert into table (a, b)
select *
from xmltable('<TOP_LEVEL_ELEMENT>'
              passing source_xml_doc
              columns a number        path 'ELEMENT_TAG_A',
                      b varchar2(100) path 'ELEMENT_TAG_B'
             );
END;
/ 
  

Комментарии:

1. Спасибо за ответ. но мой XML-ввод будет переменной, а не XML-файлом. формат xml хранится в переменной и передается хранимой процедуре, и теперь в хранимой процедуре мне нужно использовать эту xml-переменную, извлечь из нее данные и вставить в таблицу.