ich möchte eine Funktion schreiben, habe jedoch ein Problem das ich nicht verstehe.
Das erstellen der Funktion klappt problemlos aber wenn ich sie ausführe erhalten ich folgenden Fehler:
ERROR: syntax error at or near "043"
LINE 17: "kscArtikel"."ArtNr" LIKE '043%' AND
^
********** Fehler **********
ERROR: syntax error at or near "043"
SQL Status:42601
Zeichen:445
Das hier ist der betreffende Abschnitt:
begin
SELECT into "quotaLimit"
"kscArtikel"."Speicherplatz"
FROM
public."kscArtikel",
public."kscArtikelBestellt"
WHERE
"kscArtikel"."ArtNr" = "kscArtikelBestellt"."ArtNr" AND
"kscArtikel"."ArtNr" LIKE '043%' AND
"kscArtikelBestellt"."gebuchtBis" IS NULL AND
"kscArtikelBestellt"."KdNr" = $2;
CREATE OR REPLACE FUNCTION "getFreeQuota"(uid character varying, kdnr character varying)
RETURNS integer AS
$BODY$
declare
"quotaLimit" integer;
"quotaUsed" integer;
"quotaFree" integer;
begin
SELECT into "quotaLimit"
"kscArtikel"."Speicherplatz"
FROM
public."kscArtikel",
public."kscArtikelBestellt"
WHERE
"kscArtikel"."ArtNr" = "kscArtikelBestellt"."ArtNr" AND
"kscArtikel"."ArtNr" LIKE "043%" AND
"kscArtikelBestellt"."gebuchtBis" IS NULL AND
"kscArtikelBestellt"."KdNr" = $2;
SELECT into "quotaUsed"
sum("emlMailboxes".quota)
FROM
public."emlMailboxes",
public."emlDomains",
public."kscStammdaten"
WHERE
"emlMailboxes"."domainID" = "emlDomains".id AND
"kscStammdaten".uid = "emlDomains".uid AND
"emlDomains".uid = $1;
"quotaFree" = "quotaLimit" - "quotaUsed";
return "quotaFree";
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION "getFreeQuota"(character varying, character varying) OWNER TO postgres;