Ik probeer een function te maken in PostgreSQL.
Het is de bedoeling dat er een query wordt uitgevoerd en het resultaat daarvan wordt gereturnd.
Er is echter wel een uitzondering hierop. Dat is dat er geen NULL mag worden gereturnd, maar in plaats van dat een 0.
Met het resultaat van de functie wordt een berekening uitgevoerd en die berekening levert altijd NULL op als 1 van de waarden in de berekening (dit geval een optelling) een NULL waarde bevat. Daarom wil ik op de plaats van de NULL values een 0 zetten.
Dit dacht ik te kunnen doen met een function (wordt geloof ik (in andere databases) ook wel stored procedure genoemd).
Postgres komt dan met deze error, die gaat over integer in de regel onder DECLARE.
Ik begrijp de error melding niet, want ik doe volgens mij precies hetzelfde als de Postgres manual. Of toch niet
Het is de bedoeling dat er een query wordt uitgevoerd en het resultaat daarvan wordt gereturnd.
Er is echter wel een uitzondering hierop. Dat is dat er geen NULL mag worden gereturnd, maar in plaats van dat een 0.
Met het resultaat van de functie wordt een berekening uitgevoerd en die berekening levert altijd NULL op als 1 van de waarden in de berekening (dit geval een optelling) een NULL waarde bevat. Daarom wil ik op de plaats van de NULL values een 0 zetten.
Dit dacht ik te kunnen doen met een function (wordt geloof ik (in andere databases) ook wel stored procedure genoemd).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| CREATE FUNCTION eerderover_sp (integer,integer) RETURNS integer AS '
DECLARE
aantalseizoenen integer;
BEGIN
SELECT aantalseizoenen
FROM eerderover
WHERE seizoenid=$1 AND clublidid=$2;
IF aantalseizoenen ISNULL THEN
RETURN 0;
ELSE
RETURN aantalseizoenen;
END IF;
END;
' LANGUAGE 'sql'; |
Postgres komt dan met deze error, die gaat over integer in de regel onder DECLARE.
code:
1
| ERROR: syntax error at or near "integer" at character 34 |
Ik begrijp de error melding niet, want ik doe volgens mij precies hetzelfde als de Postgres manual. Of toch niet
[ Voor 4% gewijzigd door Verwijderd op 30-05-2005 14:29 ]