百度
360搜索
搜狗搜索

oracle+xmltype,关于 oracle xmltype的问题详细介绍

本文目录一览: 为什么oracle要xml type

  XML DB实际上并不是一个独立的数据库,在企业版,标准般,个人版和快捷版数据库中XML DB都是可选的功能。也就是说安装不安装XDB对数据库的核心功能没什么影响。跟ORACLE SPATIAL,ORACLE TEXT一样,XML DB实际上是建立在数据库之上的应用程序,只是在这里我们用关系模型来模拟了树状模型。因此数据库内核实际上并不知道有XML这样的数据类型存在。
  对于XML数据来说,模拟的难点在于它是树状的结构,而RDBMS都是关系型的,一种方案是将XML存储成CLOB数据,而另一种解决方案是使用对象表来解决问题。ORACLE采取的也是这两种解决方案,在建立含有XML的数据表时,我们可以指定该XMLTYPE字段是存储成CLOB还是存储成对象表。使用前者存储的优点在于存储的XML数据的可变性,而后者则在检索速度上更胜一筹。主要原因是使用CLOB方式,XML会被当成大对象来存储,不需要符合特定的格式,但是对象表就不同。在检索速度上,由于以对象表存储的方式可以很容易的建立节点级的索引(实际上就是对象表的索引),因此在按节点检索时,速度会快一些。
  还需要在概念上明确的是结构化数据和非结构化数据。结构话数据是指基于XML
  SCHEMA的数据,而非结构化数据则正好相反。在ORACLE中建立数据表的时候,我们可以指定数据表中的XMLTYPE字段是不是基于SCHEMA的。如果该字段是基于SCHEMA的,那么在数据入库的时候,ORACLE会对XML数据进行语法检查,验证其是否符合指定的SCHEMA。
  当然,最重要的概念还是XMLTYPE本身。从字面看,XMLTYPE就是一个ORACLE的内置TYPE,只是这个TYPE是专门为XML数据量身定做的。在SYS帐户下可以看见XMLTYPE的定义,当然还有一大堆我们可以用来操纵XML的函数。
  除此之外ORACLE还在数据库里提供了XDB帐户,这个帐户是我们使用的很多函数的所有者,当然,还有W3C的一些标准SCHEMA之类的东西。使用XDB提供的程序,我们可以在ORACLE数据库中打造一个WEB SERVICE。另外ORACLE还有一个可以基于文件来访问的XML库。

关于 oracle xmltype的问题

通过配置本地数据库的tns配置文件实现:
去oracle安装目录下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用记事本打开,里边有远程数据库的tns连接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
)
)
添加好ip、端口和目标数据库的实例名(SID),然后确保tns名称(ORCL23)在整个文档中唯一,保存后打开数据库连接工具,输入远程数据库上的用户名密码,选择数据库对象为你配置的连接名就可以了

oracle如何查询http返回的xml内容

1、XMLQuery方法,我们可以通过XPath提取XML节点中的内容,返回值类型可以是XML,varchar2,clob等类型,其格式为:“`sqlSELECTXMLQuery(xpath_stringreturningdatatype[optional])FROMtable_name。2、XMLTable方法可以把XML文档看作一个二维表格,并且可以指定XPath查询字段,返回的就是一个Oracle表格的结果集,其格式为:“`sqlSELECTcolumn_nameFROMxml_table(xpath_stringpassingxml_columncolumnscolumn_name,)。3、XMLType方法只需要把XML文档存储到XMLType列中,然后就可以通过XMLType自带的函数EXTRACT来查询XML数据,而不需要像XMLQuery和XMLTable一样要求用户构造XPath表达式,其格式为:“`sqlSELECTextract(xmldoc_column,xpath_string)FROMtable_name。

oracle又一种数据类型为xmltype,我想知道它的长度是多少,请问有方法么?

用length就可以
create table A(xmltype xmltype);select * from test;insert into A values('

0

');select length(xmltype) from a;

获取oracle 获取xmltpye节点中的属性值

把xml修改这样

随访方式

症状

心理调整

用下边这条sql可以查询出来
select extractvalue(字段名,'/doc/sdelement[@token="840a3605-a6c7-47a5-863f-b92ed763a261"]') from 表名;
实现思路:可以通过w3c的dom解析器进行操作,之后通过getName获取到xmltpye中的属性值。
举例:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class DomTest1
{
public static void main(String[] args) throws Exception
{
// step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器)
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// System.out.println("class name: " + dbf.getClass().getName());
// step 2:获得具体的dom解析器
DocumentBuilder db = dbf.newDocumentBuilder();
// System.out.println("class name: " + db.getClass().getName());
// step3: 解析一个xml文档,获得Document对象(根结点)
Document document = db.parse(new File("candidate.xml"));
NodeList list = document.getElementsByTagName("PERSON");
for(int i = 0; i < list.getLength(); i++)
{
Element element = (Element)list.item(i);
String content = element.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();
System.out.println("name:" + content);
System.out.println("--------------------------------------");
}
}
}

mybatis怎么读取oracle xmltype类型的数据

表结构
CREATE TABLE USERINFO(USERID VARCHAR2(5),
USERNAME VARCHAR2(20),
MEMO CLOB,
constraint PK_USERINFO primary key(USERID));
java代码:
public class OracleClobTypeHandlerCallback implements TypeHandlerCallback {
public void setParameter(ParameterSetter setter, Object obj)
throws SQLException {
CLOB clob = CLOB.empty_lob();
clob.setString(1, (String)obj);
setter.setClob(clob);
}
public Object getResult(ResultGetter getter) throws SQLException {
CLOB clob = (CLOB) getter.getClob();
return (clob == null || clob.length() == 0 )? null :clob.getSubString((long)1, (int)clob.length());
}
public Object valueOf(String param) {
return null;
}
}

求Oracle使用EXTRACTVALUE函数解析XML的使用方法,谢谢啦?

1:创建表
create table AA(id number,c_cml clob);
2:插入字段
insert into aa values(1,to_clob('

90558976001

509488308A

285320

'));

3:查询

select extractvalue(xmltype(c_cml),'/PurchaseOrder/DataElement[@name="member_id"]'),

extractvalue(xmltype(c_cml),'/PurchaseOrder/DataElement[@name="hicn"]'),

id

from aa;

怎么用xml读取数据库信息

如果是想获取oracle数据库里xmltype类型的xml数据,可以如下:
create
table
abc
(id
number,xmldoc
sys.xmltype);
select
id,extract(xmldoc,'/chart/graphs').getStringVal()
as
A
from
abc;
是获取oracle数据库里其它类型如clob或varchar2类型的xml数据,则直接取出然后用oracle相关方法解析,网上搜索oracle解析xml,有很多相关资料.

如何在oracle数据库中查询xml节点的值

用XPath比较简单点.也可以用xmldom.
xmltype('

queryProcessStepList

').extract('//CALL_METHOD/child::text()').getstringval()

测试:

SELECT xmltype('

queryProcessStepList

').extract('//CALL_METHOD/child::text()').getstringval()

FROM dual;

如果要xmldom

你可以参考我这个报表的写法:

http://www.skyz.cn/?p=364

阅读更多 >>>  oracle数据库教程答案,oracle数据库考试简答题,请回答一下吧,三个都回答了才会给分哦

Oracle 存储过程把 clob 字段 转 xml

不知道您的clob是否定义成XMLTYPE,如果是,那很简单,只需要用extract(“节点路径”)就可以得到节点的值。如果clob定义的是CLOB类型,那么需要用XMLTYPE转换,然后再用extract得到节点的值。下面是我用过的一个例子,我的clob定义的是CLOB的类型,您可以相应地构建您自己的query:
select (xmltype(CITATION)).extract('/MedlineCitation/PMID/text()').getStringVal() as PMID from medline_owner.medline_data where CREATE_DATE > to_date('04-04-2010', 'dd-MM-yyyy')

网站数据信息

"oracle+xmltype,关于 oracle xmltype的问题"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:oracle+xmltype,关于 oracle xmltype的问题的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!