Oracle table 类型数据为 XML 格式
Oracle table type data to XML format
谢谢朋友,再编辑一下。
我有 table 类型的数据,
甲骨文 11g PLSQL。
在 table 类型中输入另一个 table 类型,在另一个 table 类型中
例如
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 服务发送。
请帮助
当然这可以通过使用函数
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>
谢谢朋友,再编辑一下。 我有 table 类型的数据, 甲骨文 11g PLSQL。 在 table 类型中输入另一个 table 类型,在另一个 table 类型中 例如
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 服务发送。 请帮助
当然这可以通过使用函数
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>