开发者

Export Oracle Table Data by DBMS_XMLGEN -> How to Import?

开发者 https://www.devze.com 2023-01-27 15:05 出处:网络
I can easy export table data by using DBMS_XMLGEN. But is there a package to reimport this XML? create table foo(

I can easy export table data by using DBMS_XMLGEN. But is there a package to reimport this XML?

create table foo(
  id number
 ,text varchar2(30)
)
/

insert into foo values (1,'hello');
insert into foo values (2,'world');

declare
  l_foo_xml Clob;
begin
  l_foo_xml := DBMS_XMLGEN.GETXML('select * from foo开发者_如何学Python');
  delete from foo;
  --- ???? insert the xml into foo ???
end;
/

Thanks Christian


Have you looked at DBMS_XMLSAVE?

The Oracle documentation doesn't give examples of it's use, so a quick google will show you.

Here is something based on your example. (Which was inspired by the information from here)

create table foo(
  id number
 ,text varchar2(30)
)

CREATE OR REPLACE PROCEDURE p(p_xml IN CLOB, 
                              p_table_name IN VARCHAR2) 
IS

  l_context    DBMS_XMLSAVE.CTXTYPE;

  l_rows    NUMBER;

BEGIN

  l_context := DBMS_XMLSAVE.NEWCONTEXT(p_table_name); 

  l_rows := DBMS_XMLSAVE.INSERTXML(l_context,
                                   p_xml); 

  DBMS_XMLSAVE.CLOSECONTEXT(l_context); 

END;
/

Call the procedure p with some sample xml

DECLARE
  l_xml CLOB;
BEGIN
  l_xml := '<ROWSET>
                <ROW num="1">
                <ID>123</ID>                
                <TEXT>Some Text</TEXT>
                </ROW>
             </ROWSET>';

  p(p_xml => l_xml, 
    p_table_name => 'FOO');
END;
/

Query the table

select *
from foo

Export Oracle Table Data by DBMS_XMLGEN -> How to Import?

0

精彩评论

暂无评论...
验证码 换一张
取 消