2012-04-27 16 views
0

上のXML要素を作成したい、私は、クエリの下にしようとしているが、その私に、このエラーを与える: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" } 
    } 
}) 
+0

:DB2はどちらかswitchをサポートしていないようだとして、我々はif/elseカスケードでそれを行う必要があるでしょうか? – tohuwawohu

+0

エラーコードは、[DB2](http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql16031nからと思われます。 html)。 –

答えて

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" } 
    } 
}) 
+0

こんにちはデイブ、 その私にエラーの同様のタイプを与える: SQL16031N XQuery言語機能の構文を使用しての「要素{最初の$} { 『クロケット』}、要素の最後{」ジョンソンは、「}}})」はサポートされていません。 – Puru

+0

こんにちはデイブ、上記の構文を使って要素を作成するにはどうすればいいですか教えてください。 – Puru

0

DB2 XQueryは動的に計算した名前のcomputed element constructorsをサポートしていないようです。可能な名前の数が少なく、事前にわかっている場合は、すべての可能性を列挙してその制限を回避することができます。 XQueryエンジン

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" } 
    } 
}) 
関連する問題