Announcement

Collapse
No announcement yet.

Fehlerhandling bei SQL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehlerhandling bei SQL

    Hallo

    Gibt es auch ein Fehlerhandling bei SQL?
    Beispiel:
    Die Abfrage:
    Code:
    SELECT a.Name1, a.Plz FROM ADRESSEN a WHERE a.Plz BETWEEN 8200 AND 8500
    ergibt:
    Code:
    Fehler beim Konvertieren des nvarchar in den int Datentyp
    weil der Datentyp nvarchar und nicht int ist.

    Kann man die Abfrage dennoch starten und fehlerhafte Einträge werden ignoriert?

    Also sowas ähnliches wie eine Try Catch Anweisung.

    Danke!

  • #2
    BEGIN TRY
    ...
    END TRY
    BEGIN CATCH
    ...
    END CATCH;
    Versuch mal ob das bei deiner Datenbank geht. Du hast leider keine Angaben gemacht von welcher Datenbank du redest.

    Comment


    • #3
      Ich rate mal. PLZ ist ein nvarchar und keine Zahl und enthält auch Leerstrings?
      In dem Fall soltest du diese ungültige Zeilen wegfiltern oder in deinem BETWEEN auch strings verwenden und keine Zahlentypen.

      Comment


      • #4
        ein to_number(a.Plz) würde in diesem Fall vermutlich reichen... Ein Leerstring müsste da normalerweise zur 0 werden.

        Comment


        • #5
          to_number ist Oracle spezifisch und würde sicher nicht alle Probleme beseitigen.
          Wenn die PLZ ein anderes alpha numerisches Zeichen (-+, ... mal ausgenommen) beinhaltet, fliegt to_number jedenfalls auf die Nase.
          Wie weiter oben schon geschrieben, sollte eine (innere) where Bedingung erst alle nicht numerischen Werte rausfiltern.
          Gruß, defo

          Comment

          Working...
          X