Announcement

Collapse
No announcement yet.

Skalarwertfunktion

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

  • Skalarwertfunktion

    Moin,

    meine Funktion muss überprüfen, ob das Datum richtig geschrieben ist. Falls richtig, wird 1 zurückgeliefert, falls falsch - 0. Das ist der Text:

    ALTER FUNCTION [dbo].[is_Date]
    (
    -- Add the parameters for the function here
    @datum varchar(255)='',
    @format int=NULL
    )
    RETURNS int
    AS

    --DECLARE @Result int , @zeit datetime
    --if(len(ltrim(@datum))>0 AND len(ltrim(@format))>0)
    --SELECT @zeit=convert(datetime, @datum, @format)
    ----@Result=1
    --
    --RETURN @Result
    --END

    DECLARE @Result int, @zeit datetime

    BEGIN TRY

    if(len(ltrim(@datum))>0 AND len(ltrim(@format))>0)
    SELECT @zeit = convert(datetime, @datum, @format)
    SELECT @Result=1

    END TRY

    BEGIN CATCH
    SELECT @Result=0
    END CATCH

    RETURN @Result ;


    Da kommt die Fehlermeldung : Meldung 156, Ebene 15, Status 1, Prozedur is_Date, Zeile 24
    Incorrect syntax near the keyword 'DECLARE'.
    Was passt da nicht zusammen?

  • #2
    Isdate gibt es als SQL-Server Funktion...

    Comment


    • #3
      Danke, stimmt. Nun sieht mein Text folgendermassen aus:

      ALTER FUNCTION [dbo].[is_Date]
      (
      -- Add the parameters for the function here
      @datum varchar(255)='',
      @format int=NULL
      )
      RETURNS int
      AS
      DECLARE @Result int, @true int
      BEGIN TRY
      SELECT @true=ISDATE(convert(datetime, @datum, @format))
      IF
      @true=1
      Select @Result=@true
      END TRY

      BEGIN CATCH

      SELECT @Result=0

      END CATCH
      RETURN @Result

      GO

      Kommt trotzdem die Fehlermeldung:Meldung 156, Ebene 15, Status 1, Prozedur is_Date, Zeile 15
      Incorrect syntax near the keyword 'DECLARE'.

      Comment


      • #4
        Das liegt am fehlenden
        BEGIN;
        ...
        END;

        Wegen BEGIN TRY und co wird das aber trotzdem nicht funktionieren...
        (siehe auch BOL (MS-Hilfe))

        Comment


        • #5
          Tja, in der Hilfe stehtas TRY…CATCH-Konstrukt kann nicht in einer benutzerdefinierten Funktion verwendet werden.
          Naja, das Problem muss ich wohl auf eine andere Art lösen. Trotzdem vielen Dank.

          Comment

          Working...
          X