Komunikat o błędzie nie ma sensu w ogóle dla CREATE OR REPLACE FUNCTION
polecenie, które pokazujesz. Zakładając, że faktycznie wywołujesz funkcję w instrukcji DML, takiej jak
SELECT per_cont('{1,2,3}', 1);
Oczywiście musisz korzystać z tej samej bazy danych, ale mówisz, że została ustanowiona.
Twój search_path
również musi się zgadzać. Ponieważ nie podajesz schematu jawnie, funkcja jest tworzona w „bieżącym” schemacie podczas tworzenia. Ten sam schemat musi pojawić się w search_path
drugiej sesji lub funkcja nie jest widoczna.
Szczegółowe instrukcje w odpowiedzi, do której prowadzi link: