Hej gruppe
Jeg sidder og prøver at lave en funktion i en Apache Derby (IBM
Cloudscape) database, men jeg fatter ikke hvad der er galt?
----
CREATE FUNCTION storedFunction (nrtime DATE, nctime INT, patientid INT,
treaterid INT)
RETURNS INT
LANGUAGE SQL
BEGIN
DECLARE v_numRecords INT DEFAULT 1;
DECLARE ret INT DEFAULT 0;
DECLARE c1 CURSOR FOR
SELECT COUNT(*) INTO v_numRecords FROM reservations
ORDER BY rtime
WHERE
( (((rtime + ctime) - (nrtime + nctime)) < 0
AND ((nrtime + nctime) - (rtime + ctime)) > 0)
OR
(((rtime + ctime) - (nrtime + nctime)) > 0
AND ((nrtime + nctime) - (rtime + ctime)) < 0)
) AND treater = treaterid;
OPEN c1;
IF v_numRecords = 0 THEN
INSERT INTO reservations (patient, treater, rtime, ctime)
values (patientid, treaterid, nrtime, nctime);
SET ret = 1;
ELSE
SET ret = 0;
END IF;
RETURN ret;
END
----
Jeg får en fejl på linie 3: LANGUAGE SQL (genkender ikke SQL) - kan man
ikke skrive SQL-funktioner i Derby?
Er der nogen lettere måde at gøre tingene på?
Hvad sker der iøvrigt hvis INSERT INTO - statement fejler af en eller
anden mærkelig årsag?
Med venlig hilsen
Preben Holm
|