Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#1

Firebird: Character conversion fehler bei CREATE TABLE?

  Alt 11. Jun 2010, 10:32
Datenbank: Firebird • Version: 2.1.3 embedded • Zugriff über: ZEOS
Hallo liebe Experten,

jetzt habe ich das erste mal ein Problem mit dem Firebird.

Er hat bei einem Kunden folgende Fehlermeldung ausgespuckt:

Code:
arithmetic exception, numeric overflow, or string truncation Cannot
transliterate character between character sets At trigger 'RDB$TRIGGER_4'
The SQL: CREATE TABLE "EHXLOGTABLE" (AUTOID INTEGER NOT NULL PRIMARY KEY);
Diese Fehlermeldung finde ich verwirrend und kann damit ehrlich gesagt wenig anfangen.
Sie besagt ja, dass sie ein Zeichen nicht konvertieren konnte, aber bei DIESEM Statement?
Es wird ja nur ein Table erzeugt mit einem ID-Feld und es kommt gar keine Character Conversion in Frage, der Benutzer kann zu diesem Zeitpunkt also auch nichts eingegeben haben.
RDB$TRIGGER_4 ist nichts anderes als eine AutoIncrement-Emulation über einen Generator:

SQL-Code:
SET TERM ^ ;

CREATE TRIGGER BI_EHXLOGTABLE_AUTOID FOR EHXLOGTABLE
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
  IF (NEW.AUTOID IS NULL) THEN
      NEW.AUTOID = GEN_ID(EHXLOGTABLE_AUTOID_GEN, 1);
END^

SET TERM ; ^

Das weitere "Problem" ist, dass dieses Statement bisher immer funktioniert hat (auf anderen Rechnern).


Ist das eventuell eine beschädigte Datenbank oder woran kann das noch liegen?
Wie gesagt, das ist das erste Mal, dass ich vom Firebird eine derart "merkwürdige" Fehlermeldung bekomme, die, meiner Meinung nach, in diesem Fall keinen wirklichen Sinn macht.

Die Datenbank ist komplett UTF-8, Dialect 3.
Firebird ist die Version 2.1.3 embedded.
Komponenten sind ZEOS.

Geändert von mkinzler (11. Jun 2010 um 10:35 Uhr) Grund: CODE-Tag um SQL ergänzt
  Mit Zitat antworten Zitat