Error Message:
Msg 9308, Level 16, State 1, Line 7
%sThe argument of ‘%ls’ must be of a single numeric primitive type or ‘http://www.w3.org/2004/07/xpath-datatypes#untypedAtomic’. Found argument of type ‘%ls’.
Severity level:
16.
Description:
This error message appears when in an XQuery the arguments for a sum() operations do not evaluate to a single numeric primitive type.
Consequences:
The T-SQL statement can be parsed, but causes the error at runtime.
Resolution:
Errors of the Severity level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be run this way. The arguments for a sum() operation must evaluate to a single numeric primitive type.
Versions:
This error message was introduced with SQL Server 2005.
Example(s):
DECLARE @xml xml;
SET @xml = ‘<Result />’;
SELECT
@xml.query (‘for $a in(1, 2), $b in(3, 4)
where
$a < $b
return sum($a + $b != $a)’) as XML;
Remarks:
In the above example we try to use the logical != operator. This turns the whole expression $a + $b != $a into a logical comparison that returns a boolean result. This raises the error.