Grobmann 0 Geschrieben 26. Dezember 2018 Melden Teilen Geschrieben 26. Dezember 2018 Hallo, ich hoffe das ihr mir weiterhelfen könnt. Und zwar habe ich folgendes Problem das bei einer Tabelle manchmal ein"Nachricht 8115, Stufe 16, Status 8, Prozedur TRISAPAusschussImport01, Zeile 172 [Batchstartzeile 0] Arithmetischer Überlauffehler beim Konvertieren von int in den numeric-Datentyp." auftritt. Habe das Ganze dann getestet und wollte es manuel einfügen dabei kam aber leider der Gleiche Fehler. Hier der Insert: INSERT INTO SAPAusschussImport(Arbeitsplatz, FertAufNr, VorgangNr, FertAufPos, RollenNr,ErfZeit,ErfDatum,AktuellerAusschuss,MEAusschuss,Storniert ,RueckmeldungNummer,RueckmeldungZaehler) VALUES ('STV-IK02', '000001131920', '0010', 1, '00000000000024063333', '20:49:19','2018-12-19',263.424,'M2','0',155167,20913); Der Fehler bezieht sich anscheinend auf den AktuellerAusschuss, wenn ich diesen entferne funktioniert es. Hier noch die Create Table: CREATE TABLE [dbo].[SAPAusschussImport]( [Arbeitsplatz] [char](8) NULL, [FertAufNr] [char](12) NULL, [VorgangNr] [char](4) NULL, [FertAufPos] [char](4) NULL, [RollenNr] [char](20) NULL, [ErfZeit] [time](7) NULL, [ErfDatum] [date] NULL, [AktuellerAusschuss] [numeric](18, 3) NULL, [MEAusschuss] [char](3) NULL, [Storniert] [char](1) NULL, [RueckmeldungNummer] [numeric](10, 0) NOT NULL, [RueckmeldungZaehler] [numeric](8, 0) NOT NULL, [ObjectID] [bigint] IDENTITY(1,1) NOT NULL, [InsDatadatetime] [datetime] NULL, [ErfDatadatetime] [datetime] NULL, CONSTRAINT [PK_SAPAusschussImport] PRIMARY KEY CLUSTERED ( [RueckmeldungNummer] ASC, [RueckmeldungZaehler] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY] ) ON [PRIMARY] GO Das komische an der Sache ist, das ich die Gleiche Table auch als test angelegt habe und dort kann ich den Insert machen ohne Fehler. Vielen Dank schonmal! Schöne Grüße Grobi Zitieren Link zu diesem Kommentar
NilsK 2.918 Geschrieben 26. Dezember 2018 Melden Teilen Geschrieben 26. Dezember 2018 Moin, und wobei sollen wir dir nun helfen? Offenbar ist dort eine Funktion in eurem SAP durch euren Customizing-Dienstleister nicht ausreichend typsicher geschrieben worden. Beim Versuch, einen Wert, der als Integer übergeben wird, in einen Wert vom Typ Numeric umzuwandeln, gib es einen Fehler. Meist liegt das daran, dass das Format nicht passt, was wiederum meist die Ursache hat, dass man sich bei der Übergabe z.B. in der Reihenfolge der Werte vertan hat. Oder kurz: Sowas liegt in der Regel an mangelnder Sorgfalt beim Erzeugen des Codes. Da wir den Code und die Logik nicht kennen, können wir nicht viel dazu beitragen. Melde den Fehler an denjenigen, der für den Code insgesamt verantwortlich ist. Gruß, Nils Zitieren Link zu diesem Kommentar
Grobmann 0 Geschrieben 26. Dezember 2018 Autor Melden Teilen Geschrieben 26. Dezember 2018 Hallo, Danke für die Antwort. Naja es ging mir darum, wenn ich einen Insert mache auf die Table mit diesen Werten, dann bekomme ich auch denselben Fehler. Nur habe ich mir dann die Table mit allen vorhandenen Werten nocheinmal als test erzeugt (Script generien mit Daten/Struktur) und dort kann ich dann den Insert ohne Fehler ausführen. Nur bei der "Originalen" Table kommt der Fehler. Und deswegen wollte ich einmal wissen warum das so ist. Den wenn es ein Konvertierungs Fehler ist, dann dürfte es doch bei der selben Table auch nicht funktionieren oder? Danke! Schöne Grüße Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 26. Dezember 2018 Melden Teilen Geschrieben 26. Dezember 2018 (bearbeitet) Läuft dort der INSERT auch mit den vollkommen identischen Daten? Macht der . im Wert evlt. ein Problem? Auszug aus: https://docs.microsoft.com/de-de/sql/t-sql/data-types/decimal-and-numeric-transact-sql?view=sql-server-2017 Zitat Im Fall der Datentypen decimal und numeric sieht SQL Server jede auftretende Kombination aus Genauigkeit und Anzahl der Dezimalstellen als einen anderen Datentyp an. decimal(5,5) und decimal(5,0) werden beispielsweise als unterschiedliche Datentypen erachtet. Bei der Konvertierung einer Zahl in einen Wert des Typs decimal oder numeric mit einer geringeren Genauigkeit und einer geringeren Anzahl von Dezimalstellen wird der Wert standardmäßig von SQL Server gerundet. Wenn allerdings die Option SET ARITHABORT auf ON festgelegt ist, löst SQL Server bei Auftreten eines Überlaufs einen Fehler aus. Eine Verringerung der Genauigkeit und der Anzahl der Dezimalstellen reicht zum Auslösen eines Fehlers nicht aus. bearbeitet 26. Dezember 2018 von Sunny61 Zitieren Link zu diesem Kommentar
Grobmann 0 Geschrieben 26. Dezember 2018 Autor Melden Teilen Geschrieben 26. Dezember 2018 Die Werte sind Original Werte, genau so sind die Angekommen. Bekomme aber von denen 20-30Stk am Tag und dazwischen sind ein zwei die diesen Fehler auslösen. Dabei sind die Werte alle mit . und gleicher Stellenzahl. Ich verstehe nur nicht warum ich dann dasselbe bei der Testtable einfügen kann. Werde mich morgen nochmal mit meinen Kollegen zusammen hocken. Melde mich dann morgen wieder! Danke soweit! Zitieren Link zu diesem Kommentar
DerFrank 15 Geschrieben 26. Dezember 2018 Melden Teilen Geschrieben 26. Dezember 2018 (bearbeitet) vor 4 Stunden schrieb Grobmann: Hi, Versuch mal die daten mit cast bzw. Convert in die originaltabelle zu inserten... wenn das ohne fehler geht, dann scheint etwas an den gelieferten daten fehlerhaft zu sein. In welchen format liegen die Daten im Quellsystem? Um was für eine quelle handelt es sich denn? Vg Frank bearbeitet 26. Dezember 2018 von DerFrank Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 27. Dezember 2018 Melden Teilen Geschrieben 27. Dezember 2018 Ich sehe das wie DerFrank, die Daten sauber und ordentlich mit Cast oder Convert in die Tabelle einfügen. Evtl. ist ja bei den defekten Datensätzen ein Leerzeichen vorne oder hinten noch dran, ein Leerzeichen sieht man nicht. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.