[NEWSboard IBMi Forum]

Thema: SQL Funktion

  1. #1
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012

    SQL Funktion

    Hallo,

    ich habe eine SQL-Funktion zu einem RPG-Programm erstellt. Diese Funktion hat folgende Parameter:

    Input: 10A
    Input: 3A
    Output: 1A

    Wenn ich die Funktion nun aufrufe und die Parameter als Variablen übergebe, funktioniert alles problemlos. Wenn ich den zweiten Parameter aber als Literal übergebe, z.B.

    select ARTN, SDB( ARTN , 'DEU' ) from artstam

    dann erhalte ich folgenden Fehler:

    SDB der Art *N in *LIBL nicht gefunden.

    Typ und Länge des Literals stimmt mit der Definition jedoch überein.

    Kann man denn kein Literal als Parameter übergeben ?

    Gruß,
    KM

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Wie hast du die SQL-Funktion denn definiert (SQL-Anweisung)?

  3. #3
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    CREATE FUNCTION LIBOBJ/SDB(CHAR(10), CHAR(3))
    RETURNS CHARACTER(1)
    NOT DETERMINISTIC NO SQL
    NO EXTERNAL ACTION
    LANGUAGE RPGLE
    PARAMETER STYLE GENERAL
    EXTERNAL NAME 'LIBOBJ/SDBSPRUDF(SDB)'

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    SQL-Funktionen können überladen werden, d.h. die gleiche Funktion kann in der gleichen Bibliothek mehrfach, jedoch mit unterschiedlicher Parameterbeschreibung vorhanden sein.

    Wenn Du einen alphanumerischen Wert als 'ABC' an eine Funktion übergibst, wird der Paramter als VARCHAR definiert und VARCHAR ist für SQL ein anderer Datentyp als CHAR, d.h. die entsprechende Funktion ist nicht vorhanden. Die Länge spielt dabei keine Rolle.

    Du musst Deinen Ausdruck explizit mit CAST in Datentyp CHAR konvertieren.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Mit dem Cast funktioniert der Aufruf jetzt.

    Vielen Dank Birgitta !

Similar Threads

  1. SQL: Ausführungsverhalten einer Funktion in einem CASE-Statement
    By mwithake in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 04-08-09, 14:57
  2. sql funktion
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-06-06, 12:16
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  4. Erstellen Trigger über SQL / Read Funktion
    By GHoffmann in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-07-05, 09:18
  5. SQL Funktion " Like"
    By Stefan_R in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-01-02, 16:08

Berechtigungen

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