草庐IT

oracle-streams

全部标签

xml - 将超过 4000 个字符的 XML 插入 Oracle XMLTYPE 列

我有一个oracle表,其中包含类型为“SYS.XMLTYPE”的列和一个正在执行插入的存储过程:(简短版):PROCEDUREInsertXML(pXMLDataINLONG)ISBEGININSERTINTOMY_TABLE(XML_DATA)VALUES(pXMLData);ENDInsertXML;我从类型为“OracleType.LongVarChar”的C#代码中调用此sp。现在的问题是:如果xml少于4000个字符,一切正常,但如果使用xml超过4000个字符,我会收到以下错误:ORA-20000:ORA-01461:canbindaLONGvalueonlyforins

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

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

c# - 为什么我的新 XmlTextReader(stream) 以数兆字节读入内存而不是正确地流式传输?

当以XML格式流式传输到XmlReader时,出现内存不足异常!查看内存分析器,我们可以看到它一遍又一遍地调用StringBuilder.Append,导致大量128KB缓冲区填满所有内存。这与“流”完全相反。它不应加载超过一个4KB的缓冲区。 最佳答案 通读.NET源代码,发现有一种“v1compat”模式确实会超前读取,违背了流式传输的目的。那么,如何避免让它进入那种愚蠢的模式呢?事实证明,调用“newXmlTextReader(stream)”和“XmlReader.Create(stream)”之间存在巨大差异,Micros

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 - 如何使用xsl :stream, xsl :accumulator, xs :fork from XSLT 3. 0?

我正在阅读XSLT3.0的W3C文档here.我想知道如何使用这些元素:(1)xsl:decimal-format(2)xsl:stream(3)xsl:accumulator(4)xsl:accumulator-rule(5)xsl:fork显然,这些是一些较少使用的元素。由于此处给出的示例有限,此处提供的答案将使future的XSLT学习者受益。有人可以演示如何使用它们吗?我知道要回答的问题很多。所以我会给任何正确的部分答案投票,希望它对其他人有用。 最佳答案 xsl:decimal-format从1.0版开始就在规范中;您引用

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'