Diaco
Diaco

Reputation: 251

XMLQUERY() WITHIN XMLATTRIBUTES()

I am doing some basic tasks using, sql/xml. I am currently working on an error message that I get when trying to compute a XMLQUERY() within a XMLATTRIBUTES() function. (See code below)

SELECT XMLELEMENT(NAME "Nodename",
       XMLATTRIBUTES(XMLQUERY('$t//Element/text()' PASSING Info AS "t") AS "hello"))
FROM Kurs

The error message that I get, says that there is no qualified routine that can run the function. I cant copy-paste the error message because its in Swedish, but this should be enough.

Also this might help: SQLCODE=-440, SQLSTATE=42884, DRIVER=4.18.60

So my question is (I have been looking for the answer), why doesn't this work? I will always get a value from that XMLQUERY, and it should simply translate into a value and used by XMLATTRIBUTES()

Any documentation, or link, is welcomed as well!

Thank you in advance!

Upvotes: 0

Views: 381

Answers (1)

data_henrik
data_henrik

Reputation: 17118

The scalar function XMLQUERY returns an XML value. The function XMLATTRIBUTES expects an expression that returns a value of any type, but XML and some other types.

Thus, the functions are not compatible the way you are using them. DB2 cannot find a routine with that function signature. It results in that error -440.

How about wrapping a CAST/XMLCAST around it...?

Upvotes: 1

Related Questions