如何使用Oracle XMLTABLE从XML返回列

时间:2017-07-03 12:56:00

标签: sql xml oracle xmltable

我在表格中存储了一些f :: a -> a g :: b -> b h :: Typeable t => t -> Maybe t h x = case x of (x is of type a) -> Just (f x) (x is of type b) -> Just (g x) _ -> Nothing 。我需要能够使用此serializer.post_serialize并提取某些值。

我已经编写了一些代码来尝试返回XML标记的值,但是到目前为止我还没有能够返回结果。

我在网上找到了几个使用XML函数的示例,但不幸的是,很多这些示例使用的比我更简单<ns1:Int32/>

XML

XMLTABLE

SQL

XML

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

ns0的名称空间定义中的URL错误。和xmltable中的错误路径。您可以使用简短版本。或者提供完整的路径。 /Rule/Rule.Condition/RuleExpressionCondition/RuleExpressionCondition.Expression/ns0:CodeBinaryOperatorExpression/ns0:CodeBinaryOperatorExpression.Right/ns0:CodeBinaryOperatorExpression/ns0:CodeBinaryOperatorExpression.Right/ns0:CodePrimitiveExpression/ns0:CodePrimitiveExpression.Value

SELECT Rules2.*
FROM xmls Rules1,
XMLTABLE
(
    XMLNAMESPACES
    (
        'http://schemas.microsoft.com/winfx/2006/xaml' AS "p3",
        'clr-namespace:System.CodeDom;Assembly=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS "ns0",
        'clr-namespace:System;Assembly=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' AS "ns1",
        DEFAULT 'http://schemas.microsoft.com/winfx/2006/xaml/workflow'
    )
    ,
    '//ns0:CodePrimitiveExpression.Value'
    PASSING XMLPARSE(CONTENT Rules1.RULE WELLFORMED)
    COLUMNS "Int" INT PATH 'ns1:Int32'
) 
Rules2

答案 1 :(得分:0)

我认为问题在于您的搜索表达式是

/Rule/RuleExpressionCondition/CodeBinaryOperatorExpression/CodePrimitiveExpression

表达式缺少多个节点,对吗?