oracle xmltype简介
找不到原帖了 就贴这里吧!
在向大家详细介绍Oracle之前,首先让大家了解下Oracle xmltype是什么,Oracle从9i开始支持一种新的数据类型----
xmltype,用于存储和管理xml数据,并提供了很多的functions,用来直接读取xml文档和管理节点。下面将介绍Oracle
xmltype的一些基本使用。
1.建立含有Oracle xmltype数据类型的表create table abc (id number,xmldoc
sys.xmltype);声明xmltype型字段用:sys.xmltype。
2.向带有xmltype类型的表插入带有数据insert into abc (id,xmldoc) value (abc.nextval ,
sys.xmlType.createXML(''<name><a id="1" value="some
values">abc</a></name>'') );插入用
sys.xmlType.createXML(''some xml doc'')
3.直接查询Oracle xmltype字段里面的内容得到id=1的value变脸的值select
i.xmldoc.extract(''//name/a[@id=1]/@value'').getStringVal() as ennames,
id from abc i得到a节点的值select id,
i.xmldoc.extract(''//name/a/text()'').getStringVal() as truename from
abc i得到节点id属性的值Select
hd.Data_t.extract(''/root/name/@id'').getStringVal() As Name from
sehr_house_data hd
4.更新Oracle xmltype里面的数据update abc set
xmldoc=updateXML(xmldoc,''//name/a[@id=1]/@value'',''some new value'')
where ......(注意:如果里面没有<a id="1">这个节点,将不能update)
5.添加超过4k字节的xml文档到xmltype型字段可以通过使用临时表的办法实现:
◆先建立一个临时的表,其中的一个字段是clob
类型;
◆再将要写入xmltype字段的xml doc写入这个临时的clob型的字段中;
◆最后insert into abc
(id,xmldoc) values (abc_q.nextval , sys.xmlType.createXML((select
content from 临时表 where id=......)));
相关文档:
项目从mysql迁移到ORACLE中遇到移植问题,mysql中支持limit 而ORACLE say no .
解决方法 利用ORACLE的伪列 rownum来控制。。
Mysql : select * from table limit 10
equl
ORACLE: select * from table where rownum <= 10
ORACLE 伪列介绍:
随数据字典一起自动创建的一个表,属于sys模式,任何用户都可以访问,&nbs ......
EXP/IMP注意:从全库逻辑备份按用户导入时,Oracle没有导入JOB,不知道这个是Oracle的bug,还是故意这样实现的。这个问题在导入的用户名和导出的用户名不同时出现,如果导入的用户名和导出的用户名一致,则不会出现这个问题。怀疑是Oracle调用DBMS_IJOB包时出现的问题。
总之,EXP/IMP的时候需要考虑JOB,并在操作结束后检 ......
oracle日期函数,
TO_DATE格式
Day:
dd number 12
dy abbreviated fri
day spelled out friday
ddspth spelled out, ordinal twelfth
Month:
mm number 03
mon abbreviated mar
month spelled out march
Year:
yy two ......
2010年2月3日,本人有一個興奮的小發現,实验证明,直接用TOAD将oracle数据库中的数据直接导入
ACCESS中是不可能的。那為了做到从TOAD中将数据导入ACCESS运用间接渠道。可以用文本文件或xls等文件。其实最令我感到惊喜的是,我是通过sql 2000作為一个间接的中介,因Ġ ......
原文出自:http://tenn.javaeye.com/blog/99339
在Oracle
中,要按特定条件查询前N条记录,用个rownum
就搞定了。
select * from emp where rownum
<= 5
而且书上也告诫,不能对rownum
用">",这也就意味着,如果你想用
select * from emp where rownum
&nbs ......