16922: Cursor-FETCH: Die implizite Konvertierung von Datentyp %1! in %2! ist nicht zulässig.

By Frank Kalis

Posted on Nov 24, 2010 von in 16000-16999

Fehlermeldung:
Meldung 16922, Ebene 16, Status 1, Zeile 15
Cursor-FETCH: Die implizite Konvertierung von Datentyp %1! in %2! ist nicht zulässig.



Ebene:
16.

Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht, innerhalb einer Cursor-Operation in unzulässige Konvertierung durchzuführen.

Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.

Behebung:
Fehler der Ebene 16 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Das Statement kann so nicht ausgeführt werden. Sämtliche Konvertierungen innerhalb des Cursors müssen zulässig sein.

Versionen:
Alle Versionen von SQL Server.

Beispiele:
IF OBJECT_ID('dbo.t') IS NOT NULL
DROP TABLE dbo.t;
GO

CREATE TABLE dbo.t
(
c1 uniqueidentifier
);
GO

INSERT INTO dbo.t SELECT NEWID();

DECLARE @f float;

DECLARE c CURSOR
FOR
SELECT
dbo.t.c1
FROM
dbo.t;

OPEN c;

FETCH NEXT FROM c INTO @f

WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @f;   
FETCH NEXT FROM c INTO @f
END

DEALLOCATE c;

Anmerkungen:
Im obigen Beispiel wird versucht, innerhalb eines Cursor von Typ uniqueidentifier zu Typ float zu konvertieren. Dies löst den Fehler aus.
Dieser Eintrag wurde eingetragen von und ist abgelegt unter 16000-16999.

Noch kein Feedback


Formular wird geladen...