Hallo,
habe folgenden funktion:
DROP TYPE If EXISTS "CardState" CASCADE;
CREATE TYPE "CardState" AS (box integer, active boolean, timestamp timestamp);
CREATE OR REPLACE FUNCTION "GetCardState"(param_user_id integer, param_cards_id integer) RETURNS "CardState" AS $$
DECLARE
cnt integer;
result "CardState";
BEGIN
SELECT count(*) INTO cnt FROM "UserCardState" WHERE user_id=param_user_id and cards_id=param_cards_id;
If cnt < 1 THEN
INSERT INTO "UserCardState" (user_id, cards_id, box, active) VALUES (param_user_id, param_cards_id, 0, true);
END IF;
SELECT (box, active, timestamp) INTO result FROM "UserCardState" WHERE user_id=param_user_id and cards_id=param_cards_id;
RETURN result;
END;
$$ LANGUAGE 'plpgsql' SECURITY DEFINER;
Doch beim Aufruf von “select * from “GetCardState”(2, 1);” bekomme ich folgende Fehlermeldung:
ERROR: invalid input syntax for integer: “(0,t,)”
CONTEXT: PL/pgSQL function “GetCardState” line 11 at SQL statement********** Error **********
ERROR: invalid input syntax for integer: “(0,t,)”
SQL state: 22P02
Context: PL/pgSQL function “GetCardState” line 11 at SQL statement
Die Tabellen/Spalten gibt es und sind nicht falsch geschrieben.
Was ist an dieser Funktion falsch?
mfg
cfi