1

Temat: typ DATE jako parametr do funkcji

Witam
Nie mogę sobie poradzić z datą przekazywaną do funkcji jako parametr. Funkcja ma zwrócić ilość km dla dwóch parametrów id i daty.

CREATE OR REPLACE FUNCTION statystyka.f_sint_sint_dt_km_int(SMALLINT, SMALLINT, DATE)
  RETURNS INTEGER AS
$BODY$DECLARE
    ile_km INTEGER;
    tab_poj VARCHAR;
BEGIN
-- okreslenie tabeli dla danego idfk_poj
tab_poj := f_int_table_name_txt($1)||'_w';
           execute 'SELECT
                    '||tab_poj||'.int_wartosc
                  FROM
                    pojazdy.'||tab_poj||'
                  WHERE
                    '||tab_poj||'.dt_data_czas = '''||$3||''' AND
                    '||tab_poj||'.idfk_nr_diag = '||$2||';' into ile_km;
END;
$BODY$
  LANGUAGE plpgsql;


próbuję wywołać w ten sposób

SELECT statystyka.f_sint_sint_dt_km_int(1, 1424, '2010-08-26')

i dostaję komunikat

ERROR:  function statystyka.f_sint_sint_dt_km_int(integer, integer, unknown) does not exist
LINE 1: SELECT statystyka.f_sint_sint_dt_km_int(1, 1424, '2010-08-26...
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

********** Błąd **********

ERROR: function statystyka.f_sint_sint_dt_km_int(integer, integer, unknown) does not exist
Stan SQL:42883
Wskazówka:No function matches the given name and argument types. You might need to add explicit type casts.
Znak:8

używam funkcji z jednym argumentem jako data i wszystko jest ok...

2

Odp: typ DATE jako parametr do funkcji

Problemem nie jest data, tylko pozostale parametry

function statystyka.f_sint_sint_dt_km_int(integer, integer, unknown) does not exist

bo Ty masz smallinty w funkcji

Sprobuj

SELECT statystyka.f_sint_sint_dt_km_int(1::smallint, 1424::smallint, '2010-08-26')

3

Odp: typ DATE jako parametr do funkcji

faktycznie masz rację i już z tym kiedyś walczyłem zamienię SMALLINT-a na INTEGER-a i będzie ok