IBM DB2: Problem mit Function
Maik Görgens
- datenbank
0 Ilja
Hallo!
Ich will grad ne Funktion in IBM DB2 schreiben, bekomms aber irgendwie nicht hin. Meine Funktion:
CREATE FUNCTION team03.i_thema (ids integer)
RETURNS INTEGER
LANGUAGE SQL
MODIFIES SQL DATA
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN ATOMIC
INSERT INTO team03.lehrstuhl VALUES (0, 'name', 'site', ids);
RETURN 1;
END
Der Fehler:
SQL0628N Bezüglich der Klausel "MODIFIES SQL DATA" werden mehrere oder widersprüchliche Schlüsselwörter verwendet. LINE NUMBER=13. SQLSTATE=42613
Ich finde nicht, was da falsch ist. Insbesondere seh ich den Unterschied nicht zu dem Beispiel, das IBM auf seinen Webseiten hat:
CREATE FUNCTION DEPTEMPLOYEES (DEPTNO CHAR(3))
RETURNS TABLE (EMPNO CHAR(6),
LASTNAME VARCHAR(15),
FIRSTNAME VARCHAR(12))
LANGUAGE SQL
MODIFIES SQL DATA
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN ATOMIC
INSERT INTO AUDIT
VALUES (USER,
'Table: EMPLOYEE Prd: DEPTNO = ' CONCAT DEPTNO);
RETURN
SELECT EMPNO, LASTNAME, FIRSTNME
FROM EMPLOYEE
WHERE EMPLOYEE.WORKDEPT = DEPTEMPLOYEES.DEPTNO
END
Könnt ihr mir da weiterhelfen?
Vielen Dank und Grüße
Maik
yo,
von DB2 habe ich eigentlich keine ahnung. aber ich versuch doch mal den schuß ins blaue. die fehlermeldung könnte auch ein folgefehler sein. was mir auffällt, dass du in der zweiten zeile nur den typ des rückgabewertes angegeben hast und keinen bezeichner dazu. vielleicht will das kind nur einen namen haben, auch wenn der rückgabewert immer 1 ist ?
Ilja