%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'.

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.

]]>

Leave a comment

Your email address will not be published.