草庐IT

Oracle 兼容性面面观

全部标签

xml - 在复杂的 PL/SQL 中使用 Oracle XMLElement

使用Oracle10gR2,我需要从存储在标准关系表中的数据生成类似于以下伪示例的内容。p11005055问题是,我需要使用包含数据的行进行决策。我的数据库(我继承的)设计不佳,决定包含行所需的逻辑很复杂。不幸的是,重新设计数据库不是一种选择。我在这里大大简化了逻辑,因此不能使用简单的连接或where子句。数据和数据格式定义具有复杂的层次结构。在伪代码中,过于简化的决定看起来像这样:BEGIN--selectourbasicattributesselectXMLEMENT("product",XMLELEMENT("productName",name),XMLELEMENT("prod

xml - Oracle:如何使用 updateXML 更新文档中的多个节点?

我会写:updatemy_tablesetxml=updateXML(xml,'/a/b','1')wheredocument_id=123现在,如果在同一个更新查询中我还想将/a/c设置为2(除此之外/a/b还设置为1)怎么办?我很想写:updatemy_tablesetxml=updateXML(xml,'/a/b','1'),xml=updateXML(xml,'/a/c','2')wheredocument_id=123但这给了我一个“ORA-00957:重复的列名”。关于如何做到这一点有什么建议吗? 最佳答案 文档表明XP

xml - 更新 Oracle 中的 Clob 列

我有一个名为ABC的表,其中包含CLOB数据。我想更新列以在此Clob列的特定位置插入字符串。要插入的字符串:Clob数据:要插入的位置:就在之前 最佳答案 看看DBMS_LOB包。顺便说一句,可能值得探索放弃CLOB并使用Oracle的内置XML功能的可能性(尽管我对此并不熟悉)。 关于xml-更新Oracle中的Clob列,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/715

xml - 在 Oracle 中选择 xml 元素值

我正在尝试从位于Oracle表的XMLTYPE列中的xml元素中提取值。我试图提取的xml元素有一个定义了命名空间的父元素。xml看起来像这样:myvalue如果我想提取“a”元素的内容,它的上下文被正确返回:SELECTExtract(myColumn,'/a')FROMmyTable;但是为了返回“c”元素的内容,我没有成功找到任何可用的版本。以下说明不起作用:SELECTExtract(myColumn,'/a/b/c')FROMmyTable;SELECTExtract(myColumn,'/a/b/c','xmlns="urn:www.someSite.com/myModel

xml - 转义 Oracle XDB 中的控制字符

我对Oracle的XDB完全陌生,特别是使用它从数据库表生成XML输出,并且正在开发一个从9i(Oracle9i企业版9.2.0.5.0-生产版)迁移到11g(Oracle数据库11g企业版发布11.2.0.2.0-64位生产)。这是一个小测试用例,它说明了我遇到的问题:selectxmlelement("test",test)from(select'a'testfromdual);这有效并给我:a但是在11g中,如果我将'a'换成无效字符,例如U+0013,我会收到以下错误:ORA-31061:XDBerror:specialchartoescapedcharconversionfa

xml - 正则表达式oracle sql 11g解析XML

我在表中有一列包含xml类型的数据,但格式为varchar。原始数据示例是:BEVA30DBeva30DFrancecallscapped15pBEVA24MBeva24MFranceCallsCapped15p我想知道我必须使用什么正则表达式来从中检索例如“BEVA30D”?我试过了REGEXP_SUBSTR(table.column,'*')"REGEXPR_SUBSTR"但它不起作用。 最佳答案 忘掉正则表达式吧。使用nativeXMLType功能...selectextractValue(xmlparse(contentT.

xml - Oracle UpdateXML() 更改 XML 结构?

当我调用UpdateXML()时,我发现空节点正在转换为速记XML。有没有办法阻止UpdateXML()以这种方式运行,也许是标志或设置或替代XPath表达式来告诉它保留原始结构?/*Example1*/SELECTUpdateXML(xmlData,'/TEST/VALUE/text()','hello')as"Example1"FROM(SELECTXMLType('hi')asxmlDataFROMDUAL);Example1---------hello/*Example2*/SELECTUpdateXML(xmlData,'/TEST/VALUE/text()','hello'

xml - 如何处理 Oracle XML DB native Web 服务中的 NULL 存储过程返回参数?

我有一个简单的Oracle包,其中包含一个简单的存储过程。存储过程声明1个IN参数和几个OUT参数。只要OUT参数包含值,我就可以使用XMLDBnativeWeb服务成功调用存储过程。但是,如果任何OUT参数包含NULL,我将得到一个包含ORA-01405提取列值为空的SOAP错误。我可以看到在调用SQL时有处理NULL值的选项(使用元素,但是有人知道如何用PL/SQL做同样的事情吗?...--createatesttableCREATETABLExmldb_test(key_valuevarchar2(32),value1varchar2(32),value2varchar2(32)

xml - 在 Oracle 中格式化来自 XMLQuery() 的输出 XML

我正在使用XMLQuery()在我的表中执行一些XQuery,这些表由带有XML文档(Oracle的XMLTYPE)的记录组成。Oracle查询如下所示:SELECTXMLQuery('for$bindistinct-values($rdoc//book_title)let$r:=$rdoc//review[book_title=$b]/ratingorderbyavg($r)descendingreturn{data($b)}{avg($r)}'passingb.dataas"bdoc",r.dataas"rdoc"RETURNINGCONTENT).getStringVal()XM

xml - 如何使用 XMLTABLE 在 Oracle SQL 中导入复杂的 XML 类型

我将以下XML文件从名为ARCHIVDATA的表中完全导入到一个名为CLOB_CONTENT的单元格中:123456结果我想要的是下表(有两行的表):页眉|内容1|23|空4|54|6我该怎么做?我已经尝试过以下方法:SELECTx3.header,x4.contentFROM(selectxmltype(xml.CLOB_CONTENT)xmldatafromARCHIVDATA)x1,xmltable('/AuditLog/AuditLogEntry'passingx1.xmldatacolumnsheaderXmlTypepath'header',contentXmlTypepa