0

その場で要素を作成したいのですが、クエリの下で試していますが、このエラーが発生します:SQL16031N XQuery language feature using syntax "element {$first} { "Crockett" }, element last {"Johnson" } } })" is not supported

助けてください。

    XQUERY
let $first := concat('first','')
return (element book { 
    attribute isbn {"isbn-0060229357" }, 
    element title { "Harold and the Purple Crayon"},
    element author { 
        element {$first} { "Crockett" }, 
        element last {"Johnson" }
    }
})
4

2 に答える 2

0

これを試して:

let $first := xs:QName('first')
return (element book { 
    attribute isbn {"isbn-0060229357" }, 
    element title { "Harold and the Purple Crayon"},
    element author { 
        element {$first} { "Crockett" }, 
        element last {"Johnson" }
    }
})
于 2012-04-27T11:08:51.007 に答える
0

DB2 XQuery は、動的に計算された名前を持つ計算要素コンストラクターをサポートしていないようです。可能な名前の数が少なく、事前にわかっている場合は、すべての可能性をリストすることでその制限を回避できます。switchDB2 はどちらもサポートしていないようなので、 if/elseカスケードを使用する必要があります。

XQUERY
let $first := 'firstA'
return (element book { 
    attribute isbn {"isbn-0060229357" }, 
    element title { "Harold and the Purple Crayon"},
    element author { 
        if($first eq 'firstA')
          then element firstA { "Crockett" }
        else if($first eq 'firstB')
          then element firstB { "Crockett" }
        else if($first eq 'firstC')
          then element firstC { "Crockett" }
        else (), 
        element last {"Johnson" }
    }
})
于 2012-04-28T12:15:51.190 に答える