Oracle表类型数据为XML格式

时间:2015-03-07 11:26:06

标签: sql oracle oracle11g

谢谢朋友,多一点编辑。 我有一个表类型的数据, Oracle 11g PLSQL。 在该表内部键入另一个表类型,并在另一个表类型中 例如

header_table_type

columns header_id (Number)
item_name (varchar2)
item_type (varchar2)
service_detail **(Service_table_type)**

service_table_type

columns service_name (Varchar2),
service_id (varchar2)
service_details **(service_term_table_type)**

service_term_table_type

service_1 varchar2, 
service_2 varchar2 , 
service 2 varchar2.

我的table_type具有上述结构。有没有办法使这个table_type成为XML格式。通过Web服务发送。 请帮忙

1 个答案:

答案 0 :(得分:0)

当然可以通过使用函数

来实现
XMLTYPE()

试试这个例子

create type service_term_table_type as object (
  service_1 varchar2(30),
  service_2 varchar2(30),
  service_3 varchar2(30)
 )
/
create type service_table_type as object (
service_id varchar2(30),
service_details service_term_table_type
 )
/
 create type header_table_type as object (
   header_id number, 
   item_name varchar2(30),
   item_type varchar2(30), 
   service_detail service_table_type)
  /
 create table xml_example (a xmltype)
 /
 declare
 mytype  header_table_type:=header_table_type(1,'a','b',service_table_type('c',service_t erm_table_type('d','e','f')));
 x xmltype;
begin
  x:=xmltype(mytype);
  insert into xml_example values (x);
end;

现在你可以看到结果:

select substr(a,1,500) from xml_example;


<HEADER_TABLE_TYPE>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

  <HEADER_ID>1</HEADER_ID>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

  <tITEM_NAME>a</ITEM_NAME>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

  <ITEM_TYPE>b</ITEM_TYPE>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

  <SERVICE_DETAIL>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

    <SERVICE_ID>c</SERVICE_ID>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

    <SERVICE_DETAILS>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

      <SERVICE_1>d</SERVICE_1>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

      <SERVICE_2>e</SERVICE_2>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

      <SERVICE_3>f</SERVICE_3>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

    </SERVICE_DETAILS>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

  </SERVICE_DETAIL>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

</HEADER_TABLE_TYPE>