-
SQL 400 UDF
I5 9406/520 RE: V5R3M0 L00
Hallo Leute,
habe mich als Anfänger in SQL an den User Defined Functions versucht.
Ich fand dazu ein Beispiel in der IBM Lektüre, dass ich nach zu vollziehen versuchte.
Hier der Code zum erstellen der Funktion:
CREATE FUNCTION SAMPLE.ABTMA(DEPTNO CHAR(3))
RETURNS TABLE (EMPNO CHAR(6),
LASTNAME VARCHAR(15),
FIRSTNAME VARCHAR(12))
LANGUAGE SQL
READS SQL DATA
NO EXTERNAL ACTION
DETERMINISTIC
DISALLOW PARALLEL
RETURN
SELECT EMPNO,LASTNAME,FIRSTNME
FROM SAMPLE.EMPLOYEE
WHERE WORKDEPT =ABTMA.DEPTNO
Die Funktion wurde problemlos in der Bibl. SAMPLE erstellt und steht dort als
Objekt Art Bibliothek Attribut Text
ABTMA *SRVPGM SAMPLE CLE SQL FUNCTION ABTM
Danach wollte ich die Funktion mit folgendem SELECT testen:
SELECT EMPNO, LASTNAME, FIRSTNAME
FROM TABLE(ABTMA ('A00')) AS D
Nach diesem Aufruf kommt folgende Fehlermeldung :
SQL-Status: 42704
Vendorencode: -204
Nachricht: [SQL0204] ABTMA der Art *N in *LIBL nicht gefunden. Ursache . . . . : ABTMA der Art *N in *LIBL wurde nicht gefunden. Handelt es sich um eine Anweisung ALTER TABLE und ist die Art *N, wurde eine Integritätsbedingung oder Partitionierung nicht gefunden. Ist dies keine Anweisung ALTER TABLE und ist die Art *N, wurde eine Funktion, eine Prozedur oder ein Auslöser nicht gefunden. Wurde eine Funktion nicht gefunden, ist ABTMA das Serviceprogramm, das die Funktion enthält. Die Funktion wird nur gefunden, wenn der externe Name und der Verwendungsname exakt übereinstimmen. Im Jobprotokoll nach einer Nachricht suchen, die weitere Einzelheiten über den gesuchten Funktionsnamen und den nicht übereinstimmenden Namen enthält. Fehlerbeseitigung: Den Namen ändern und die Anforderung wiederholen. Ist das Objekt eine Knotengruppe, sicherstellen, dass DB2 Multisystem auf dem System installiert ist, und mit dem CL-Befehl CRTNODGRP eine Knotengruppe erstellen. Wurde eine externe Funktion nicht gefunden, das Groß-/Kleinscheibung des EXTERNAL NAME der Anweisung CREATE FUNCTION exakt mit der Groß-/Kleinschreibung des vom Serviceprogramm exportierten Namens übereinstimmen.
Verarbeitung wurde beendet, da die hervorgehobene Anweisung nicht erfolgreich abgeschlossen werden konnte.
Hat jemand eine Erklärung dafür, warum die UDF nicht gefunden wurde?
Besten Dank im voraus für Eure Hilfe
Gruß
Stefan
-
Bibliotheksliste ist korrekt gesetzt ?
Datei EMPLOYEE ist in der Bibliotheksliste ?
Gruß
Rince
/edit/
Eventuell muss man das SAMPLE auch im Binddirectory eintragen ?
-
Übergabe von Ausdrücken
Hallo,
Dein Problem liegt darin, dass der Parameter als Ausruck übergeben wurde. Ausdrücke werden von SQL als Datentyp VARCHAR interpretiert. VARCHAR und CHAR werden von SQL als unterschiedliche Datentypen gehandelt. Da SQL-Funktionen überladen werden können, wird nach einer Funktion gesucht, die einen VARCHAR-Parameter hat. Diese wird jedoch nicht gefunden.
Langer Rede kurzer Sinn. Du müsstest die Funktion aufrufen können, wenn Du den Ausdruck in einen CHAR-Datentyp umwandelst:
PHP-Code:
SELECT EMPNO, LASTNAME, FIRSTNAME
FROM TABLE(ABTMA (cast('A00' as Char(3)))) AS D;
Birgitta
-
Hallo Brigitta,
das war es.
Besten Dank für deine Hilfe
MfG
Stefan
Similar Threads
-
By Nils_V in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 18-07-16, 09:49
-
By Peder in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 06-12-06, 08:15
-
By jakarto in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-07-06, 13:41
-
By HACHIMAN in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 22-05-06, 09:48
-
By pfpk0997 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 28-02-06, 18:39
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks