Hallo,
über eine Stored Procedure trage ich Datensätze in Tabellen ein. Dabei werden manche Daten mit unklaren Fehlermeldungen nicht gespeichert.
Die Datenbank enthält: DEFAULT CHARACTER SET ISO8859_1;
In einem SQL-Skript sollen mehrere Datensätze nacheinander gespeichert werden; dort wird ausdrücklich der Zeichensatz aktiviert:
SET NAMES ISO8859_1;
Mehrere Datensätze wie folgt werden problemlos gespeichert:
EXECUTE PROCEDURE sp_Datensatz_ID( 'p' , 1, 'Briefsendung', 1 );
Datensätze mit Umlauten liefern die Fehlermeldung "cannot transliterate character between character sets":
EXECUTE PROCEDURE sp_Datensatz_ID( 'p' , 13, 'Büchersendung', 1 );
<i>In der Diskussion "Probleme mit Umlauten" wird erwähnt, dass der Zeichensatz in der Prozedur angegeben werden kann bzw. soll. Aber auch die Ergänzung bei ALTER PROCEDURE mit VARCHAR(35) CHARACTER SET ISO8859_1 hat nichts geändert.</i>
Andere Datensätze liefern unerklärlich einen anderen Fehler:
EXECUTE PROCEDURE sp_Datensatz_ID( 'p' , 23, 'Presse/Buch Internat. Kilotarif', 1 );
"arithmetic exception, numeric overflow or string truncation" Alle beteiligten String-Variable wurden mit VARCHAR(35) deklariert.
Was kann hier los sein, wie kann ich das Problem umgehen?
Danke! Jürgen
über eine Stored Procedure trage ich Datensätze in Tabellen ein. Dabei werden manche Daten mit unklaren Fehlermeldungen nicht gespeichert.
Die Datenbank enthält: DEFAULT CHARACTER SET ISO8859_1;
In einem SQL-Skript sollen mehrere Datensätze nacheinander gespeichert werden; dort wird ausdrücklich der Zeichensatz aktiviert:
SET NAMES ISO8859_1;
Mehrere Datensätze wie folgt werden problemlos gespeichert:
EXECUTE PROCEDURE sp_Datensatz_ID( 'p' , 1, 'Briefsendung', 1 );
Datensätze mit Umlauten liefern die Fehlermeldung "cannot transliterate character between character sets":
EXECUTE PROCEDURE sp_Datensatz_ID( 'p' , 13, 'Büchersendung', 1 );
<i>In der Diskussion "Probleme mit Umlauten" wird erwähnt, dass der Zeichensatz in der Prozedur angegeben werden kann bzw. soll. Aber auch die Ergänzung bei ALTER PROCEDURE mit VARCHAR(35) CHARACTER SET ISO8859_1 hat nichts geändert.</i>
Andere Datensätze liefern unerklärlich einen anderen Fehler:
EXECUTE PROCEDURE sp_Datensatz_ID( 'p' , 23, 'Presse/Buch Internat. Kilotarif', 1 );
"arithmetic exception, numeric overflow or string truncation" Alle beteiligten String-Variable wurden mit VARCHAR(35) deklariert.
Was kann hier los sein, wie kann ich das Problem umgehen?
Danke! Jürgen
Comment