SELECT oder PERFORM in einer PL / pgSQL-Funktion
Ich habe diese Funktion in meiner Datenbank:
<code>CREATE OR REPLACE FUNCTION "insertarNuevoArticulo"(nombrearticulo character varying, descripcion text, idtipo integer, idfamilia bigint, artstock integer, minstock integer, maxstock integer, idmarca bigint, precio real, marcastock integer) RETURNS boolean AS $BODY$ DECLARE articulo "Articulo"%ROWTYPE; BEGIN SELECT * INTO articulo FROM "Articulo" WHERE "Nombre" = $1 AND "idTipo"=$3 AND "idFamilia"=$4; IF NOT FOUND THEN INSERT INTO "Articulo" ("Nombre", "Descripcion", "idTipo", "idFamilia", "Stock", "MinStock", "MaxStock") Values ($1, $2, $3, $4, $5, $6, $7); SELECT last_value INTO articulo."idArticulo" FROM "public"."Articulo_idArticulo_seq"; END IF; SELECT * FROM "ArticuloMarca" AS am WHERE am."idArticulo" = articulo."idArticulo" and am."idMarca" = $8; IF NOT FOUND THEN Insert into "ArticuloMarca"("idArticulo", "idMarca", "PrecioReferencial", "Stock") Values (articulo."idArticulo", $8, $9, $10); RETURN TRUE; END IF; RETURN FALSE; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION "insertarNuevoArticulo"(character varying, text, integer, bigint, integer, integer, integer, bigint, real, integer) OWNER TO postgres; </code>
Aber sobald ich versuche, es zu benutzen, heißt es, dass ich es benutzen mussPERFORM
wenn ich die ergebnisse verwerfen will! Das Problem hier ist, dass ich nicht will! Ich will sie in derarticulo
Reihe erklärte ich!
Ich verwende diese Aussage:
<code>SELECT "insertarNuevoArticulo"('Acetaminofen', 'caro', '1' , '1', '8', '1', '10', '1', '150.7', '10'); </code>
Und der Fehler, den ich bekomme, ist 42601, ein Syntaxfehler! Wie könnte es sein, wenn ich die IDE verwende, um sie zu erstellen? Irgendeine Idee über das Problem?