Table of Contents
Ecco alcuni semplici metodi per aiutarti a correggere l’errore SQL 9402.
Approvato
In SQL Server, devi davvero memorizzare XML con un pilastro di tipo XML
. Questo vecchio ha molti vantaggi. Ha un livello molto più elevato e controlli impliciti.
In base alla mia domanda, ho la sensazione che tu stia memorizzando il tuo XML NTEXT
. Questa opzione è stata in realtà deprecata per secoli e dovrebbe essere sicuramente supportata in future alternative! Devi cambiarlo presto!
- Corde per chitarra da 1 byte (
CHAR
VARCHAR
), o che a loro volta generalmente estendono ASCII
Importante: questo è anche da UTF-8! Il supporto UTF-8 nativo dovrebbe essere incluso in una fermata futura. - un gruppo di 1 . 5 byte (
NCHAR
oNVARCHAR
) che è sicuramente UTF-16 (UCS-2)
Se XML ha una grande dichiarazione di avvio della programmazione per computer (in molti casi è utf-8
e/o forse utf-16
), puoi certamente prendilo.
Se l’XML è memorizzato come una linea a doppio byte (almeno questo è ciò che NTEXT
dice al mio stile di vita), l’annuncio dovrebbe essere sempre utf-16
. Deve essere una catena di 1 byte utf-8
.
Questo (e soprattutto, il più semplice) è probabilmente la conclusione. Il motivo era quello di omettere correttamente l’affermazione. Non dovresti farlo. Memorizzare il nuovo XML del tipo corretto probabilmente risulterà effettivamente in questa istruzione kill.
Cosa fornire: creare una nuova colonna, coinvolgere XML
e concatenare tutto XML in quella colonna. Sii chiaro oltre a qualsiasi articolo TEXT
, NTEXT
e IMAGE
che potresti avere!
Fai un salto nel futuro: sii felice e apprezza questa corsa facile e veloce per mezzo di questo tipo XML nativo 😀
AGGIORNAMENTO Differenze ambientali
Trasmetti
([col1xml] in xml)
Se una colonna molto probabilmente memorizza XML nel proprio tipo, non è necessario ripetere il casting ogni giorno (che è molto costoso!!). Ma nel caso in cui tale l’ultima distribuzione dipenda da XML reale. Questa, come memorizzata in NTEXT
, è una stringa di 2 byte. Se i file XML iniziano con un annuncio che indica una codifica non supportata (nella maggior parte dei casi utf-8
), fallisce.
DECLARE at xml2Byte_UTF16 NVARCHAR (100) = ' test5 ';SELEZIONA COME Cast (@ xml2byte_utf16 XML);DECLARE @ xml1Byte_UTF8 VARCHAR (100) = 'test2 ';SELEZIONA CAST (@ xml1Byte_UTF8 XML);
DECLARE vs. @ xml2Byte_UTF8 NVARCHAR (100) = ' test3 ';SELEZIONA CAST (@ xml2Byte_UTF8 AS XML);DICHIARA VARCHAR (100) = 'test4 ';SELEZIONA CAST (@ xml1Byte_UTF16 AS XML);
[“Business Unit”: “Codice”: “BU053”, “Etichetta”: “Piattaforma Cloud e dati”, “Prodotto”: “Codice”: “SSQRQ3”, “Etichetta”: “IBM Cast Iron”, “ Componente ” :” “,” Larghezza in pollici piattaforma: [” codice “:” PF025 “,” identità “:” Indipendente dalla piattaforma “],” Versione “:” Tutte le versioni “,” Revisione “:” “,” Linea di attività “: “codice”: “”, “etichetta”: “”]
Domanda
Errore: SQLSTATE:HY000 ERRORCODE: 9402 Errore: analisi XML: riga 1, carattere 38, forse non con commutazione di codifica con Cast Iron
Rispondi
Nota tecnica (risoluzione dei problemi)
”
Problema (riepilogo)
Approvato
Lo strumento di riparazione ASR Pro è la soluzione per un PC Windows che funziona lentamente, presenta problemi di registro o è infetto da malware. Questo strumento potente e facile da usare può diagnosticare e riparare rapidamente il tuo PC, aumentando le prestazioni, ottimizzando la memoria e migliorando la sicurezza nel processo. Non soffrire più di un computer lento: prova ASR Pro oggi!
Motivo
Questo errore si verifica per MSSQL Web prevede che i dati XML siano codificati in UTF-16, ma la codifica XML arretrata è UTF-8.
Risolvi il tuo problema
Per determinare questo problema, sostituire l’intero tag di sviluppo = UTF-8 nell’XML di invio con codifica = UTF-16. Dopo aver modificato il tag di progettazione nella maggior parte del documento XML MSSQL, è necessario assistere l’utente nell’elaborazione dei dati XML.