[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2006
    Beiträge
    24

    Probleme mit dem Aufruf einer UDF

    Hallo Zusammen,


    ich hab da ein Problem mit dem Aufruf einer UDF der Parameter zu übergeben sind.

    Ich habe mir vom IBM Information Center folgendes Beispiel genommen.

    CREATE FUNCTION BIBL/PROJFUNC(auftrag CHAR(30))
    RETURNS TABLE (PROJNO CHAR(6), ACTNO SMALLINT, ACTSTAFF DECIMAL(5,2),
    ACSTDATE DATE, ACENDATE DATE)
    LANGUAGE SQL
    BEGIN
    RETURN SELECT * FROM BIBL/PROJACT
    WHERE auftr = auftrag;
    END

    The function can then be called as:

    SELECT * FROM TABLE(BIBL/PROJFUNC(:auftrag)) X

    Das Erstellen der UDF funktioniert.
    Dann möchte ich die UDF aus dem interaktiven SQL aufrufen. Den Parameter :auftrag gebe ich da nicht als :auftrag sondern als String in einfachen Hochkommas an.
    Der Aufruf schaut dann so aus:
    SELECT * FROM TABLE(BIBL/PROJFUNC('4711')) X

    Dann erhalte ich die Nachricht
    PROJFUNC der Art *N in BIBL nicht gefunden.

    Was mache ich da falsch.

    Vorab, vielen Dank für die Hilfe

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.361
    Du musst den Parameter passend casten:
    cast('xxxx' as char(30)), da sonst keine passende Prozedursignatur ermittelt werden kann.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.307
    ... oder als VARCHAR definieren

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Du musst den Parameter passend casten:
    cast('xxxx' as char(30)), da sonst keine passende Prozedursignatur ermittelt werden kann.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Mar 2006
    Beiträge
    24

    Problem mit UDF

    Vielen Dank,

    das funktioniert erst mal.

    Jetzt habe ich aber nochmal eine Frage dazu.
    In der Select Anweisung die die Tabelle zurück gibt muss ich mehrere Select's mit UNION ALL verbinden.
    Das funktioniert scheinbar nicht.
    Jede einzelne Anweisung funktioniert aber wenn ich versuche die UDF mit UNION ALL zu erstellen kommt der Fehler das ein Feld nicht eindeutig ist.
    Der komplette Select (mit den UNION ALL) funktioniert aber im interaktiven SQL.
    Kann man in einer UDF vielleicht die Tabelle die die UDF zurückgibt mit mehreren Insert Into's füllen um die UNION ALL Verknüpfung zu umgehen?

Similar Threads

  1. UDF nicht verwendbar
    By Peder in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 06-12-06, 08:15
  2. Aufruf STRDBG dauert ewig!
    By schatte in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 04-09-06, 08:50
  3. SQL UDF Prob mit leeren Feldern
    By HACHIMAN in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 22-05-06, 09:48
  4. Probleme nach dem Booten
    By enno in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-01-06, 05:28
  5. Probleme mit dem Schlüsselwort ASSUME
    By gefis in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 21-03-01, 13:51

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •