数据库表格转换成XML格式方法!

数据库表格转换成XML格式方法! 资源中心有软件可下载
1,确定必要的视图或者是表格
2,创建存储过程
create or replace procedure SP_create_xml(obj_name varchar2) is
ls_object_name user_tab_columns.TABLE_NAME%type;
ln_object_hava number:=0;
type ty_obj_cols is table of user_tab_columns.COLUMN_NAME%type
index by binary_integer;
ty_obj_col ty_obj_cols;
ln_col_no number:=1;
ls_creaet_sql varchar2(5000);

begin
dbms_output.enable(200000);
--------------------获得表的名称并验证--------------------------
----------------------------------------------------------------
ls_object_name:=upper(obj_name);
select count(*) into ln_object_hava from user_tab_columns where table_name=ls_object_name;
if ln_object_hava=0 then
dbms_output.put_line('& the object: '||obj_name||' can not be found!!');
return;
--调出程序!!
end if;
----------------------------------------------------------------
-------------------获得列的信息 -------------------------------
for cur_01 in (select COLUMN_NAME from user_tab_columns where table_name= ls_object_name)
loop
ty_obj_col(ln_col_no):=cur_01.COLUMN_NAME;
ln_col_no:=ln_col_no+1;
end loop;
----------------------------------------------------------------
---------------------打印所有的列信息---------------------------
--for i in 1..ty_obj_col.count loop
-- dbms_output.put_line('## '||ty_obj_col(i));
--end loop;
----------------------------------------------------------------
--------------------获得主键信息 ----------------------------

----------------------------------------------------------------
----------------------------------------------------------------
ls_creaet_sql:='create or replace view xml_'||lower(obj_name)||CHR(10)||' as '||CHR(10)||'select '||CHR(10);
ls_creaet_sql:=ls_creaet_sql||' ''''||CHR(10)||'||CHR(10);
for i in 1..ty_obj_col.count loop
ls_creaet_sql:=ls_creaet_sql||' '||' '' ''|| ''''||'||ty_obj_col(i)||'||'''||''||ty_obj_col(i)||'>''||' ||'CHR(10)||'||CHR(10);
end loop;
ls_creaet_sql:=ls_creaet_sql||''''''||CHR(10);
ls_creaet_sql:=ls_creaet_sql||' XML_INFO FROM '||obj_name||'';
-----------------------------------------------------------------
-----------------------使用换行的办法打印出来--------------------
dbms_output.put_line('使用换行的办法打印出来');
dbms_output.put_line('------------------------------------------------------');
declare
ln_pos number:=1;
ln_poss number:=1;
ln_posss number:=1;
begin
while instr(ls_creaet_sql,chr(10),1,ln_pos)>0 loop
ln_posss:=instr(ls_creaet_sql,chr(10),1,ln_pos);
--dbms_output.put_line(ln_posss||' --- '||ln_poss);
dbms_output.put_line(substrb(ls_creaet_sql,ln_poss,ln_posss-ln_poss));
ln_pos:=ln_pos+1;--需要依次递加!!
ln_poss:=ln_posss;
end loop;
dbms_output.put_line(substrb(ls_creaet_sql,ln_poss,ln_posss));
end;
-----------------------------------------------------------------
-----------------------------------------------------------------
-----------------------------------------------------------------
execute immediate rtrim(ls_creaet_sql,chr(10));
dbms_output.put_line('------------------------------------------------------');
exception
when others then
dbms_output.put_line(substrb(sqlerrm,1,200));
end SP_create_xml;
/
3,运行可以创建XML视图
4,利用视图生成XML文件!!利用资源中心的FORMAT_XML程序可以格式化成标准的XML文件!
详细见软件!!

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9879835/viewspace-1000817/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9879835/viewspace-1000817/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值