postgresql funkcja
jarek - 20-09-2007 00:03
postgresql funkcja
Witam, Czy mógłby mi ktoś powiedzieć co jest powodem poniższego błędu w logach ??
LOG: statement: select suma(907,901,200709,200709); LOG: statement: SELECT CASE WHEN sum(z.ilosc) is null THEN 0 ELSE sum(z.ilosc) END, CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE sum(z.ilosc*z.kwota) END FROM zlecenia z INNER JOIN nazwy_d nd1 ON nd1.idnazwy_d=z.idnazwy_d_zlec AND nd1.poziom_0= $1 INNER JOIN nazwy_d nd2 ON nd2.idnazwy_d=z.idnazwy_d_wyk AND nd2.poziom_0= $2 WHERE (z.rok||z.miesiac) BETWEEN $3 AND $4 AND z.aktywny CONTEXT: SQL statement "SELECT CASE WHEN sum(z.ilosc) is null THEN 0 ELSE sum(z.ilosc) END, CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE sum(z.ilosc*z.kwota) END FROM zlecenia z INNER JOIN nazwy_d nd1 ON nd1.idnazwy_d=z.idnazwy_d_zlec AND nd1.poziom_0= $1 INNER JOIN nazwy_d nd2 ON nd2.idnazwy_d=z.idnazwy_d_wyk AND nd2.poziom_0= $2 WHERE (z.rok||z.miesiac) BETWEEN $3 AND $4 AND z.aktywny" PL/pgSQL function "suma" line 9 at select into variables
A oto procedura
CREATE OR REPLACE FUNCTION "public"."suma" (integer, integer, integer, integer) RETURNS "public"."suma" AS $body$ DECLARE temp1 suma; vZlec ALIAS FOR $1; vWyk ALIAS FOR $2; vDataOd ALIAS FOR $3; vDataDo ALIAS FOR $4; BEGIN
SELECT INTO temp1.ilosc, temp1.kwota CASE WHEN sum(z.ilosc) is null THEN 0 ELSE sum(z.ilosc) END, CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE sum(z.ilosc*z.kwota) END FROM zlecenia z INNER JOIN nazwy_d nd1 ON nd1.idnazwy_d=z.idnazwy_d_zlec AND nd1.poziom_0=vZlec INNER JOIN nazwy_d nd2 ON nd2.idnazwy_d=z.idnazwy_d_wyk AND nd2.poziom_0=vWyk WHERE (z.rok||z.miesiac) BETWEEN vDataOd AND vDataDo AND z.aktywny;
RETURN temp1; END; $body$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
i typ do którego zwracany jest wynik procedury
CREATE TYPE "public"."suma" AS ( "ilosc" NUMERIC(10,0), "kwota" NUMERIC(12,2) );
pozdr.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Szymon - 20-09-2007 00:03
jarek pisze: > Witam, > Czy mógłby mi ktoś powiedzieć co jest powodem poniższego błędu w logach ?? > > LOG: statement: select suma(907,901,200709,200709); > LOG: statement: SELECT CASE WHEN sum(z.ilosc) is null THEN 0 ELSE sum(z.ilosc) > END, CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE sum(z.ilosc*z.kwota) END > FROM zlecenia z INNER JOIN nazwy_d nd1 ON nd1.idnazwy_d=z.idnazwy_d_zlec AND > nd1.poziom_0= $1 INNER JOIN nazwy_d nd2 ON nd2.idnazwy_d=z.idnazwy_d_wyk AND > nd2.poziom_0= $2 WHERE (z.rok||z.miesiac) BETWEEN $3 AND $4 AND z.aktywny > CONTEXT: SQL statement "SELECT CASE WHEN sum(z.ilosc) is null THEN 0 ELSE > sum(z.ilosc) END, CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE > sum(z.ilosc*z.kwota) END FROM zlecenia z INNER JOIN nazwy_d nd1 ON > nd1.idnazwy_d=z.idnazwy_d_zlec AND nd1.poziom_0= $1 INNER JOIN nazwy_d nd2 ON > nd2.idnazwy_d=z.idnazwy_d_wyk AND nd2.poziom_0= $2 WHERE (z.rok||z.miesiac) > BETWEEN $3 AND $4 AND z.aktywny" > PL/pgSQL function "suma" line 9 at select into variables > > > A oto procedura > > CREATE OR REPLACE FUNCTION "public"."suma" (integer, integer, integer, integer) > RETURNS "public"."suma" AS > $body$ > DECLARE > temp1 suma; > vZlec ALIAS FOR $1; > vWyk ALIAS FOR $2; > vDataOd ALIAS FOR $3; > vDataDo ALIAS FOR $4; > BEGIN > > SELECT > INTO > temp1.ilosc, > temp1.kwota > CASE WHEN sum(z.ilosc) is null THEN 0 ELSE sum(z.ilosc) END, > CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE sum(z.ilosc*z.kwota) END > FROM zlecenia z > INNER JOIN nazwy_d nd1 ON > nd1.idnazwy_d=z.idnazwy_d_zlec AND > nd1.poziom_0=vZlec > INNER JOIN nazwy_d nd2 ON > nd2.idnazwy_d=z.idnazwy_d_wyk AND > nd2.poziom_0=vWyk > WHERE > (z.rok||z.miesiac) BETWEEN vDataOd AND vDataDo AND > z.aktywny; > > RETURN temp1; > END; > $body$ > LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; > > i typ do którego zwracany jest wynik procedury > > CREATE TYPE "public"."suma" AS ( > "ilosc" NUMERIC(10,0), > "kwota" NUMERIC(12,2) > ); > > pozdr. > >
hm... czy czekasz na odpowiedź: "Tak, ktoś mógłby?" Następnym razem wklej informację dokładnie informację o błędzie, bo to co wkleiłeś to tylko kawałek, nawet nie jest napisane, że to błąd.
select into ma inną składnię:
create table X ( id int, name int); -------------------------------------- DECLARE _id int; _name int;
SELECT id, name INTO _id, _name FROM X;
-------------------------------------- select KOLUMNY into ZMIENNE from costam;
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 21-09-2007 00:03
Szymon wrote: > > select into ma inną składnię: > > -------------------------------------- > select KOLUMNY into ZMIENNE from costam;
Można i tak, a można i w odwrotnej kolejności.
-- P.M.
Herakles - 22-09-2007 00:16
jarek wrote:
> Witam, > Czy mógłby mi ktoś powiedzieć co jest powodem poniższego błędu w logach ?? > > LOG: statement: select suma(907,901,200709,200709); > LOG: statement: SELECT CASE WHEN sum(z.ilosc) is null THEN 0 ELSE > sum(z.ilosc) END, CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE > sum(z.ilosc*z.kwota) END FROM zlecenia z INNER JOIN nazwy_d nd1 ON > nd1.idnazwy_d=z.idnazwy_d_zlec AND > nd1.poziom_0= $1 INNER JOIN nazwy_d nd2 ON nd2.idnazwy_d=z.idnazwy_d_wyk > AND > nd2.poziom_0= $2 WHERE (z.rok||z.miesiac) BETWEEN $3 AND $4 AND > z.aktywny > CONTEXT: SQL statement "SELECT CASE WHEN sum(z.ilosc) is null THEN 0 > ELSE sum(z.ilosc) END, CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE > sum(z.ilosc*z.kwota) END FROM zlecenia z INNER JOIN nazwy_d nd1 ON > nd1.idnazwy_d=z.idnazwy_d_zlec AND nd1.poziom_0= $1 INNER JOIN nazwy_d > nd2 ON > nd2.idnazwy_d=z.idnazwy_d_wyk AND nd2.poziom_0= $2 WHERE > (z.rok||z.miesiac) > BETWEEN $3 AND $4 AND z.aktywny" > PL/pgSQL function "suma" line 9 at select into variables > > > A oto procedura > > CREATE OR REPLACE FUNCTION "public"."suma" (integer, integer, integer, > integer) RETURNS "public"."suma" AS > $body$ > DECLARE > temp1 suma; > vZlec ALIAS FOR $1; > vWyk ALIAS FOR $2; > vDataOd ALIAS FOR $3; > vDataDo ALIAS FOR $4; > BEGIN > > SELECT > INTO ----------------------------------------------- > temp1.ilosc, > temp1.kwota > CASE WHEN sum(z.ilosc) is null THEN 0 ELSE sum(z.ilosc) END, > CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE > sum(z.ilosc*z.kwota) END ----------------------------------------------- Zmień na: temp1 CASE WHEN sum(z.ilosc) is null THEN 0 ELSE sum(z.ilosc) END, CASE WHEN sum(z.ilosc*z.kwota) is null THEN 0 ELSE sum(z.ilosc*z.kwota) END
> FROM zlecenia z > INNER JOIN nazwy_d nd1 ON > nd1.idnazwy_d=z.idnazwy_d_zlec AND > nd1.poziom_0=vZlec > INNER JOIN nazwy_d nd2 ON > nd2.idnazwy_d=z.idnazwy_d_wyk AND > nd2.poziom_0=vWyk > WHERE > (z.rok||z.miesiac) BETWEEN vDataOd AND vDataDo AND > z.aktywny; > > RETURN temp1; > END; > $body$ > LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; > > i typ do którego zwracany jest wynik procedury > > CREATE TYPE "public"."suma" AS ( > "ilosc" NUMERIC(10,0), > "kwota" NUMERIC(12,2) > ); > > pozdr. > >
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
postgresql - int/int
postgresql Select count(*) czy raczej Select count(ID)
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
=?ISO-8859-2?Q?[psql]_Polskie_t=B3umaczenie_?= =?ISO-8859-2?Q?licencji_BSD_dla_PostgreSQL=3F?=
[firebird] Czym =?ISO-8859-2?Q?zast=B1pi=E6_postgresowy_inte?==?ISO-8859-2?Q?rval_=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plponland.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|