2016-05-29 13 views
-1

Ich habe eine sehr seltsame Situation mit ein paar Verfahren in meinem Projekt. Beide machen dasselbe (siehe unten), aber auf verschiedenen Tabellen, also erkläre ich das Problem (dasselbe in beiden Verfahren).MySql Ausnahme Fehlercode: 1366. Falscher String-Wert: ' xF0K xF59 {z ...'

Ich habe eine Tabelle hosten Hunderte von Etiketten, die an einen Client zurückgegeben werden müssen. Die Antwort wird immer als TEXT gesendet. Anfangs würde die Prozedur aus der relevanten Tabelle auswählen, die erforderliche Verkettung durchführen und die Zeichenfolge zurücksenden.

Ich machte eine einfache (oder so dachte ich) Änderung, die das Ergebnis in eine DIGEST-Tabelle speichern würde. Wenn die gleiche Funktion das zweite Mal aufgerufen wird, würde sie zuerst prüfen, ob in der Digest-Tabelle eine gültige Antwort verfügbar ist, und falls ja, einfach die Antwort zurückgeben. Wenn im Digest kein übereinstimmender Eintrag vorhanden ist, erstellen Sie die Antwort, speichern Sie sie in der Digest-Tabelle (für den nächsten Aufruf), und geben Sie die erstellte Antwort zurück.

Die Funktionen funktionieren einwandfrei, wenn ich immer die Antwort baue (verkette) und sie zurückgebe. Wenn ich andererseits die Antwort aus der Digest-Tabelle extrahiere, erhalte ich den Fehler Fehlercode: 1366. Falscher String-Wert: '\ xF0K \ xF59 {z ...'.

Ich überprüfte den Inhalt der Digest-Tabelle und es sieht OK aus.

Irgendeine Idee, wo das Problem herkommen könnte?

Vielen Dank im Voraus für jeden Vorschlag.

+0

Ich sollte hinzufügen, dass ich genau den gleichen Mechanismus in anderen 6 Funktionen verwende und es funktioniert perfekt (mit ausgezeichneter Leistung!). – FDavidov

+0

Das kann Ihnen helfen [http://stackoverflow.com/a/1168099/2451726] – Arulkumar

+0

Vielen Dank @Arulkumar, aber es tut es nicht. Insgesamt habe ich etwa 8 Funktionen, die identische Logik ausführen, außer dass sie an verschiedenen Quellentabellen arbeiten. Der einzige Unterschied zwischen den beiden PROBLEMATIC-Funktionen und dem Rest ist die Größe der zurückgegebenen Daten (am größten in der problematischen Funktion). Darüber hinaus erscheint das Problem, wenn die abgerufenen Zeichenfolgen in englischer Ebene sind (d. H. UTFx wird nicht wirklich verwendet). – FDavidov

Antwort

0

Es stellte sich heraus, dass ich Glück hatte und einen bekannten Fehler (der Version, die ich benutze) traf. Ich löste es, indem ich einen langen CLOB in eine Reihe von VARCHARs zerlegte (änderte auch den Typ der Tabellenspalte). Ja, ich weiß, das ist nicht die beste Lösung in Bezug auf die Leistung, aber in diesem Stadium des Projekts werde ich nicht einmal daran denken, auf eine neuere Version der Datenbank zu aktualisieren.

Verwandte Themen