Dies sind die Typdefinitionen mir zur Verfügung gestelltPostgresql Funktionen
create type IR as (pattern_number integer, uoc_number integer);
Mein aktueller Fortschritt ist:
create or replace function q1(pattern text, uoc_threshold integer)
returns setof IR
as $$
BEGIN
RETURN QUERY
select count(code) from temp where code like $1;
RETURN QUERY
select count(code) from temp where code like $1 and uoc > $2;
END;
$$ language plpgsql;
braucht Meine Ausgabe wie folgt zu sein: Abfrage: -
select *
from q1('ECO%', 6);
pattern_number | uoc_number
80 | 5
Ich erhalte eine Fehlermeldung:
ERROR: structure of query does not match function result type
DETAIL: Returned type bigint does not match expected type integer in column 1.
CONTEXT: PL/pgSQL function q1(text,integer) line 3 at RETURN QUERY
Wie behebe ich das?
Ihre Funktion gibt zwei Reihen mit einer einzigen (bigint) Spalte. Sie möchten eine einzelne Zeile mit einer einzelnen Spalte, die ein Datensatz ist. –
bekomme ich es richtig? Sie möchten 'count (code) von temp wählen, wo Code wie $ 1' als pattern_number und 'count (code) von temp auswählen, wo code wie $ 1 und uoc> $ 2' als uoc_number? .. Ich habe eine Antwort mit code - sic hinzugefügt? –
@VaoTsun Ja. Das ist genau das, was ich will, aber Ihre Antwort scheint den Fehler nicht zu beheben –