none
Like bringt ein Ergebnis, = bringt 'Fehler beim Konvertieren des nvarchar-Werts 'application/gzip' in den int-Datentyp.' RRS feed

  • Frage

  • Hallo,

    die Abfrage

    select  flur, flurstueck
    from view1
    inner join view2
    on view1.KEY = view2.KEY
    where

    GEMARKUNG = 'Ort1'
    and FLUR = 34
    and FLURSTUECK = 234

    führt zum Fehler

    'Fehler beim Konvertieren des nvarchar-Werts 'application/gzip' in den int-Datentyp.'

    ersetzt man FLURSTUECK = 234

    durch FLURSTUECK LIKE 234 oder

    FLURSTUECK > 233 and FLURSTUECK < 235

    erfolgt die Anzeige richtig.

    Ohne inner join funktioniert auch  FLURSTUECK = 234

    Flur ist smallint, Flurstück int, key beiden Views ist nvarchar(32), DB-System ist SQL Server 2008 R2

    Hat jemand eine Idee? Danke


    • Bearbeitet maatmsdn Montag, 14. Januar 2013 11:41
    Montag, 14. Januar 2013 11:39

Alle Antworten

  • Hallo,

    der Fehlermeldung nach ist einer der Felder doch nicht vom Typ smallint/int, sondern nvarchar, wo auch Text drin steht. Die Fehlermeldung kann man leicht reproduzieren:

    SELECT 1 AS Result WHERE N'application/gzip' = 34

    Bei Verwendung von LIKE wird die Zahl implizit in ein nvarchar konvertiert, den ein LIKE auf einen numerischen Wert macht keinen Sinn und deswegen gibt es hier keinen Fehler.

    SELECT 1 AS Result
    WHERE N'application/gzip' LIKE 34


    Olaf Helper

    Blog Xing

    Montag, 14. Januar 2013 12:00
  • Hallo Olaf,

    ohne den join läuft es. FLUR/FLURSTUECK sind wirklich smallint bzw. int.

    select  flur, flurstueck
    from view1
    where
    GEMARKUNG = 'Ort1'
    and FLUR = 34
    and FLURSTUECK = 234

    bringt:

    flur    flurstueck
    34    234

    Tschüss

    Martin

    Montag, 14. Januar 2013 12:38
  • Hallo Martin,

    Laut Fehlermeldung ist ein beteiligtes Feld aber doch ein nvarchar mit entsprechendem textuellem Inhalt. Wird im View evtl. noch konvertiert?


    Olaf Helper

    Blog Xing

    Montag, 14. Januar 2013 18:38
  • Hallo Martin,
    in welcher Tabelle und in welchem Feld steht denn der Text 'application/gzip'  ?

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    Dienstag, 15. Januar 2013 07:38
  • Es gab tatsächlich in einer Tabelle, die für die View benutzt wird, ein Feld mit dem Inhalt 'application/gzip'

    Danke an Olaf und Christoph

    Habe erst heute danach gesucht - daher die späte Rückmeldung.

    Donnerstag, 24. Oktober 2013 09:48