Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Benutzerdefinierte Funktion aufrufen?

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Nobody, 1 Juni 2013.

  1. Nobody

    Nobody Benutzer

    Hi,

    ich habe folgende Funktion im SQL Server 2008 Express erstellt

    Code:
    create function Zahlen_entfernen
            (@Eingabe varchar(100))
    returns varchar(100)
    as begin
        Set @Eingabe = Replace(@Eingabe,'0','');
        Set @Eingabe = Replace(@Eingabe,'1','');
        Set @Eingabe = Replace(@Eingabe,'2','');
        Set @Eingabe = Replace(@Eingabe,'3','');
        Set @Eingabe = Replace(@Eingabe,'4','');
        Set @Eingabe = Replace(@Eingabe,'5','');
        Set @Eingabe = Replace(@Eingabe,'6','');
        Set @Eingabe = Replace(@Eingabe,'7','');
        Set @Eingabe = Replace(@Eingabe,'8','');
        Set @Eingabe = Replace(@Eingabe,'9','');
        Set @Eingabe = RTrim(@Eingabe);
        return @Eingabe;
    end
    Wenn ich die Funktion nun aufrufen will, dann sagt mir der SQL Server dass er die Funktion nicht kennt, obwohl beim ausführen der Funktion kein Fehler aufgetreten ist.
    Fehlermeldung:
    Folgender Funktionsaufruf habe ich versucht:
    Code:
    update Artikel
    set Bezeichnung = zahlen_entfernen(Bezeichnung)
    Kann mir einer weiterhelfen?

    Gruß Nobody
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Ich weiß nicht, wo der Fehler steckt (nutze M$SQL nicht), aber warum so umständlich?

    Code:
    test=*# select regexp_replace('abc1x2y3z4abc567xyz123bla','[0-9]','','g');
     regexp_replace
    -----------------
     abcxyzabcxyzbla
    (1 row)
    
    Entfernt alle Ziffern aus dem String - in einem Zug. Hat M$SQL denn keine analogen Funktionen?


    Andreas
     
  3. Nobody

    Nobody Benutzer

    Hallo,

    War generell eine Frage, weil ich später noch andere Funktionen schreiben muss, die mit Sicherheit nicht in SQL verfügbar sind.

    Kann ich dir nicht sagen, bin noch nicht wirklich fit in SQL. Deshalb weiß ich ja nicht mal wie ich eine selbstgeschriebene Funktion aufrufen kann.

    Gruß Nobody
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Exakt genau so wie fertige Funktionen. Zumindest in PG.

    Andreas
     
  5. akretschmer

    akretschmer Datenbank-Guru

  6. Nobody

    Nobody Benutzer

    Hi,

    funktioniert perfekt. Danke

    Gruß Nobody
     
  7. ukulele

    ukulele Datenbank-Guru

    In MSSQL müsste '[0-9]' in Verbindung mit replace auch gehen, jedenfalls nutze ich das auch.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden