Hier sind wahrscheinlich einige einfache Methoden, die Ihrer ganzen Familie helfen, Ihren SQL 9402-Fehler zu beheben.

In SQL Server muss jede Person XML mit einer Zeile vom Typ XML speichern. Dieser alte Mann hat viele Vorteile. Es hat eine sehr hohe Ebene und implizite Prüfungen.

Aufgrund meiner Frage akzeptiere ich, dass Sie Ihr XML NTEXT speichern. Diese Option ist bereits seit Jahrhunderten veraltet und sollte in zukünftigen Alternativen wahrscheinlich nicht mehr unterstützt werden! Das musst du bald ändern!

  • 1-Byte-Post ( CHAR VARCHAR ), oder die wiederum zweifellos erweiterte ASCII sind
    Wichtig: Dies ist erheblich von UTF-8! Die native UTF-8-Unterstützung sollte in Zukunft vorzugsweise integriert werden.
  • eine Gruppe von drei Bytes ( NCHAR oder NVARCHAR ), die definitiv UTF-16 (UCS-2) ist

Wenn XML eine hervorragende Deklaration zum Starten der Computerprogrammierung hat (in einigen Fällen ist es utf-8 oder möglicherweise ein utf-16 ), können Sie diese problemlos abrufen.

Wenn das XML als Doppelbyte-Zeile gespeichert ist (zumindest sagt das NTEXT meinen Lebensstil aus), sollte das Ding immer utf-16 sein. Es muss ein 1-Byte-Zyklus utf-8 sein.

Dies (und vor allem das Einfachste) sollte wohl abschließend sein. Das Motiv war, die Aussage tadellos wegzulassen. Willst du es nicht. Das Speichern des neuen XML im richtigen Typ führt wahrscheinlich automatisch zu dieser kill-Anweisung.

sql error 9402

Was Sie auf jeden Fall tun sollten: Erstellen Sie eine neue Spalte, wichtiges XML , und verketten Sie alle XML in dieser Spalte. Seien Sie bei allen Tipps zu TEXT , NTEXT und IMAGE klar und deutlich!

Machen Sie einen Schritt in die Zukunft: Seien Sie glücklich und nehmen Sie an dieser schnellen und einfachen Fahrt mit diesem nativen XML-Typ teil 😀

UPDATE-Umgebungsunterschiede

Cast
sql error 9402

  ([col1xml] in xml) 

Wenn die beste Spalte höchstwahrscheinlich XML in ihrem eigenen Typ speichert, müssen Sie das Casting nicht bei jeder Instanz wiederholen (was sehr teuer ist !!). Aber für den Fall, dass diese Verteilung auf echtes XML angewiesen ist. Dies ist, wie in NTEXT gespeichert, ein 2-Byte-String. Wenn meistens XML-Dateien mit einer Umfrage beginnen, die auf eine nicht unterstützte Kodierung hinweist (in den meisten Fällen utf-8 ), kann dies sehr gut fehlschlagen.

  DECLARE at xml2Byte_UTF16 NVARCHAR (100) = '  test6  ';SELECT AS Cast (@ xml2byte_utf16 XML);DECLARE @ xml1Byte_UTF8 VARCHAR (100) = '  test2  ';SELECT CAST (@ xml1Byte_UTF8 XML); 
  DECLARE vs. @ xml2Byte_UTF8 NVARCHAR (100) = '  test3  ';SELECT CAST (@ xml2Byte_UTF8 AS XML);DECLARE VARCHAR (100) = '  test4  ';SELECT CAST (@ xml1Byte_UTF16 AS XML); 

[„Geschäftsbereich“: „Code“: „BU053“, „Label“: „Cloud- und Datenplattform“, „Produkt“: „Code“: „SSQRQ3“, „Label“: „IBM Cast Iron“, „Komponente“ :” “,” Plattform Zoll breit: [” code “:” PF025 “,” name “:” Plattformunabhängig “],” Version “:” Alle Versionen “,” Revision “:” “,” Branche”: “code”: “”, “label”: “”]

Frage

Fehler: SQLSTATE:HY000 ERRORCODE: 9402 Fehler: XML-Parsing: Zeile 1, Zeichen 38, definitiv mit Codierungsumschaltung mit Cast Iron

Antworten

Technischer Hinweis (Fehlerbehebung)

Problem (Zusammenfassung)

Beim Übergeben des XML-Verlaufs an MSSQL in der Speicherprozedur wird der folgende Fehler festgestellt: “SQLSTATE: HY000 ERRORCODE: 9402 Fehlermeldung: [CastIron Systems] [JDBC SQLServer-Treiber] [SQLServer] XML-Parsing: achtunddreißigstes Zeichen in Schritt 1 kann die Codierung nicht ändern “

Grund

Dieser Fehler tritt auf, da MSSQL Web erwartet, dass XML-Daten direkt UTF-16-codiert sind, aber die Standard-XML-Codierung ist UTF-8.

Lösen Sie Ihr Problem

Um dieses Problem zu beheben, ersetzen Sie das gesamte Computerprogrammierung = UTF-8-Tag in dem Zustand, in dem sie XML mit Codierung = UTF-16 erleben. Nachdem Sie das Design-Tag in meinem MSSQL-XML-Dokument geändert haben, müssen Sie die XML-Daten im Markt verarbeiten.

Historische Zahl

Produktalias / Synonym