创建一个dir,用动态sql拼游标,然后xmldom生成xml文件导出。大体上是这个思路。
解决方案 »
- 若部门名称按字母顺序排列,oracle 按字母顺序排序,当出现汉字时,汉字排在最后,如出现多个汉字时,排列顺序不清楚
- 快照问题
- 想学习Oracle 的存储过程,函数,触发器等等;求经典练习或者参考文档
- 如何成为一名DBA!!
- oracle817在linux下能支持16G内存、4颗3.0G的CPU吗?
- 弱弱的问题,临时表空间的管理是如何实现的呢?我们如何控制它的增长?
- 远程连接数据库方法
- SQL问题
- 关于TOAD的连接数据库。
- 有没有人用pl/sql developer
- 谁能提供oracle XE 10g下载?官网已经不提供下载了
- 我的备库做完了,但是归档为 :Current log sequence 0
已连接。SQL> create table x as select * from dba_objects where rownum<10;表已创建。
SQL> create or replace procedure gen_xml_bytname(p_tname varchar2)
2 as
3 type type_cur is ref cursor;
4 cur type_cur;
5 m_strsql varchar2(2000);
6 m_rowinfo varchar2(2000);
7 hfile Utl_File.file_type ;
8 dwCount int := 0 ;
9 begin
10 m_strsql := 'select ';
11 for x in (select cname from col where tname = p_tname) loop
12 m_strsql := m_strsql || '''<' || x.cname || '>'' || ' || x.cname || ' |
| ''</' || x.cname || '>'' || chr(10) ||' ;
13 end loop;
14 m_strsql := substr( m_strsql ,1,length(m_strsql) -2) || ' as c from ' ||
p_tname;
15 dbms_output.put_line(m_strsql) ;
16
17 open cur for m_strsql;
18 hfile := Utl_file.fopen('XMLFILEDIR',p_tname || '.xml','W') ;
19 utl_file.put_line(hfile,'<?xml version="1.0" encoding="utf-8"?> ');
20 utl_file.put_line(hfile,'<' || p_tname || '>');
21 loop
22 fetch cur into m_rowinfo;
23 exit when cur%notfound;
24 dwCount := dwCount + 1 ;
25 utl_file.put_line(hfile,'<rowno>' || dwCount || '</rowno>');
26 utl_file.put_line(hfile,m_rowinfo);
27 end loop;
28 utl_file.put_line(hfile,'<' || p_tname || '>');
29 utl_file.fclose_all;
30 close cur;
31 end;
32 /过程已创建。SQL> call gen_xml_bytname('X');调用完成。SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开C:\Documents and Settings\Administrator>type c:\x.xml
<?xml version="1.0" encoding="utf-8"?>
<X>
<rowno>1</rowno>
<OWNER>SYS</OWNER>
<OBJECT_NAME>ICOL$</OBJECT_NAME>
<SUBOBJECT_NAME></SUBOBJECT_NAME>
<OBJECT_ID>20</OBJECT_ID>
<DATA_OBJECT_ID>2</DATA_OBJECT_ID>
<OBJECT_TYPE>TABLE</OBJECT_TYPE>
<CREATED>02-4月 -10</CREATED>
<LAST_DDL_TIME>02-4月 -10</LAST_DDL_TIME>
<TIMESTAMP>2010-04-02:13:18:38</TIMESTAMP>
<STATUS>VALID</STATUS>
<TEMPORARY>N</TEMPORARY>
<GENERATED>N</GENERATED>
<SECONDARY>N</SECONDARY>
<NAMESPACE>1</NAMESPACE>
<EDITION_NAME></EDITION_NAME>
...................
...................
<rowno>9</rowno>
<OWNER>SYS</OWNER>
<OBJECT_NAME>I_CDEF2</OBJECT_NAME>
<SUBOBJECT_NAME></SUBOBJECT_NAME>
<OBJECT_ID>54</OBJECT_ID>
<DATA_OBJECT_ID>54</DATA_OBJECT_ID>
<OBJECT_TYPE>INDEX</OBJECT_TYPE>
<CREATED>02-4月 -10</CREATED>
<LAST_DDL_TIME>02-4月 -10</LAST_DDL_TIME>
<TIMESTAMP>2010-04-02:13:18:38</TIMESTAMP>
<STATUS>VALID</STATUS>
<TEMPORARY>N</TEMPORARY>
<GENERATED>N</GENERATED>
<SECONDARY>N</SECONDARY>
<NAMESPACE>4</NAMESPACE>
<EDITION_NAME></EDITION_NAME><X>C:\Documents and Settings\Administrator>
谢谢高手指点,试了一下,但是报ORA-06502和ORA-06512的错,忽略后可以继续执行成功,但是报错是哪里的问题啊,求解!
2.确认你这张表,没有 lob 类型的字段。
行数多了,也报错吗?
行数多了,也报错吗?
行数试了20多行,列数10内的没有问题,但是行数少,列数多的报错。