#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-переменную, извлечь из нее данные и вставить в таблицу.