2396 – %1!L’attributo non può trovarsi all’esterno di un elemento.

0
(0)

Messaggio

Codice: 2396

Messaggio in italiano: %1!L’attributo non può trovarsi all’esterno di un elemento.

Messaggio in inglese: %sAttribute may not appear outside of an element

Spiegazione

Quando si richiama il valore di un attributo con XPath in SQL server potrebbe essere restituito più di un valore.

Per ottenere il valore dell’attributo è necessario richiamarlo per value (e non per query) e specificare la sua posizione nell’array dei valori, anche se l’attributo non è ripetuto. Inoltre va specificato il tipo, come stringa.

Causa

Si è tentato di utilizzare una sintassi in cui si estrae il valore di un attributo come valore scalare.

Esempio:

DECLARE @x XML = '<test><node value="test"/></test>'
SELECT @x.query('/test/node/@value');

Lo stesso esempio, funzionante. In evidenza le modifiche:

DECLARE @x XML = '<test><node value="test"/></test>'
SELECT @x.value('(/test/node/@value)[1]', 'varchar(20)');

Parametri

%1! rappresenta il punto che genera l’errore. Nell’esempio, XQuery [query()].

Soluzione

Modificare il codice per ottenere un valore scalare (value) invece che un insieme (query), e aggiungere il tipo ritornato.

Hai trovato utile questo contenuto?

Valutazione: 0 / 5. Voti: 0

Vota per primo questo contenuto

Ci dispiace che tu abbia trovato inutile o sbagliato questo contenuto

Lasciaci un messaggio

Come possiamo migliorare?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.