-
SQL UDF Function ausführung mit Fehler
Folgendes Problem:
wir haben ein Userdefined function erstellt:
***************************************
Funktion
-- SQL generieren
-- Version: V5R3M0 040528
-- Generiert am: 20.07.06 07:49:00
-- Relationale Datenbank: S441991A
-- Standardauswahl: DB2 UDB iSeries
SET PATH "QSYS","QSYS2","ZTSKDBFARO" ;
CREATE FUNCTION ZTSKDBFARO.INT2DATE (
INVAL INTEGER )
RETURNS DATE
LANGUAGE SQL
SPECIFIC ZTSKDBFARO.INT2DATE
DETERMINISTIC
CONTAINS SQL
CALLED ON NULL INPUT
NO EXTERNAL ACTION
RETURN ( DATE ( CONCAT ( CONCAT ( CONCAT ( CONCAT ( SUBSTR ( CAST ( INVAL AS CHAR ( 8 ) ) , 1 , 4 ) , '-' ) , SUBSTR ( CAST ( INVAL AS CHAR ( 8 ) ) , 5 , 2 ) ) , '-' ) , SUBSTR ( CAST ( INVAL AS CHAR ( 8 ) ) , 7 , 2 ) ) ) ) ;
COMMENT ON SPECIFIC FUNCTION ZTSKDBFARO.INT2DATE
IS 'Datumsumwandlung für Datumsabfragen im deutschen eingabeformat' ;
****************************************
Wenn diese Funktion nun einem SQL-Statement benutz werden soll komm es immer zu einem Fehler.
*****************************************
Aufrufbeispiel:
Select A2.A2AXNR AS A2AXNR_1, A1.A1AGNR AS A1AGNR_2,
ZTSKDBFARO.INT2DATE(A1.A1DTAN) AS A1DTAN_3, ZTSKDBFARO.INT2DATE(A2.A2DTVO) AS A2DTVO_4,
ZTSKDBFARO.INT2DATE(A2.A2DTBI) AS A2DTBI_5, ZTSKDBFARO.INT2DATE(A1.A1OPDT) AS A1OPDT_6,
A1.A1OPKZ AS A1OPKZ_7, A2.A2AZLE AS A2AZLE_8, A2.A2LART AS A2LART_9,
A2.A2LEC1 AS A2LEC1_10, A2.A2LEC2 AS A2LEC2_11, A2.A2LEC3 AS A2LEC3_12,
A2.A2LEC4 AS A2LEC4_13, A2.A2LBE1 AS A2LBE1_14, A2.A2AZPP AS A2AZPP_15,
A2.A2VKGP AS A2VKGP_16, A2.A2LART AS SORT1X, A2.A2LEC1 AS SORT2X,
A2.A2LEC2 AS SORT3X, A2.A2LEC3 AS SORT4X, A2.A2DTVO AS SORT5X, A2.A2AXNR AS SORT6X
from ZTSKDBFARO.A1#PF A1, ZTSKDBFARO.A2#PF A2
where A1.A1AUNR = A2.A2AXNR and A1.A1FLGN =A2.A2FLGN and (A1.A1FOAR NOT LIKE 'ST'
and ( A2.A2LART NOT LIKE 'BE' or A2.A2LART NOT LIKE 'BI' or A2.A2LART NOT LIKE 'LI' )
and A2.A2LEC2 NOT LIKE '001' and A1.A1DTAN >= 20050101
and (A1.A1DTAN <= 20050107 or A1.A1DTAN is NULL ))
******************************************
Die Fehlermeldung die nun zurückkommt lautet:
SQL0204] INT2DATE der Art *N in ZTSKDBFARO nicht gefunden. Ursache . . . . :
INT2DATE der Art *N in ZTSKDBFARO 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 INT2DATE 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.
*******************************************
Wir haben alles in der Fehlermeldung genannte überprüft, allerdings ohne Erfolg.
Was läuft hier falsch?
Danke
-
Hallo,
die UDFs werden nur gefunden, wenn auch der Aufrufparameter stimmt.
Die INT2DATE Funktion will einen Integer haben. Ist das Feld aus der Tabelle denn ein Integer?
Wenn nicht dann den Parameter ggf. casten.
Z.B:
ZTSKDBFARO.INT2DATE(INT(A1.A1DTAN))
oder mehrere UDFs mit verschiedenen Parametertypen anlegen.
Tschüß
Benedikt
-
Hallo Benedikt,
Tip ging schon mal in die richtige Richtung !
Allerdings: Die felder sind DECIMAL 8,0 wie mach ich denn dann den Typcast?
Hab die UDF so umgebaut das sie DECIMAL(8,0) erwartet.
Dank und Gruss
Michael
Similar Threads
-
By Nils_V in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 18-07-16, 09:49
-
By GraueEminenz in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 10-07-06, 11:58
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By Stefan_Sk in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 26-05-06, 16:37
-
By HACHIMAN in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 22-05-06, 09:48
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