Temat: Funkcja sql zwracanie recordów
Witam napisałem sobie funkcje wyszukującą ID w tabeli ale mam taki problem funkcja ta zwraca mi tylko jeden rekord zamiast zbioru rekordów z zadanym numerze oto funkcja :
CREATE OR REPLACE FUNCTION functionSELECT()
RETURNS integer AS
'select "NUMER" FROM "TABELANUMEROW" WHERE "NUMER"=$PARAMETR;'
LANGUAGE 'sql';
ALTER FUNCTION functionSELECT() OWNER TO "Admin";
Wiem że problem polega na tym iż funkcja zwraca wartość integer a chciałbym żeby zwracała zbiór rekordów zawierających jedynie kolumnę NUMER ograniczoną warunkiem WHERE nic poza tym. Nie wiem jaki typ danych użyć gdy użyję konstrukcji :
CREATE OR REPLACE FUNCTION functionSELECT()
RETURNS SETOF "TABELANUMEROW" AS
'select "NUMER" FROM "TABELANUMEROW" WHERE "NUMER"=$PARAMETR;'
LANGUAGE 'sql';
ALTER FUNCTION functionSELECT() OWNER TO "Admin";
Funkcja się sypie i to zrozumiałe dla tego bo tabela TABELANUMEROW posiada więcej kolumn niż tylko jedną "NUMER".
Rozwiązania poszukałem w perspektywie :
CREATE OR REPLACE VIEW "TYLKONUMER" AS
SELECT "TABELANUMEROW"."NRUMER"
FROM "TABELANUMEROW";
ALTER TABLE "TYLKONUMER" OWNER TO "Admin";
I funkcja do tego :
CREATE OR REPLACE FUNCTION functionSELECT()
RETURNS SETOF "TYLKONUMER" AS
'select "NUMER" FROM "TABELANUMEROW" WHERE "NUMER"=$PARAMETR;'
LANGUAGE 'sql';
ALTER FUNCTION functionSELECT() OWNER TO "Admin";
I to działa tak jak powinno.
Ale teraz podstawowe pytanie czy da się zrobić taką funkcję bez definiowania perspektywy ?? Jakiego typu użyć by zwróciła zbiór rekordów w postaci jednej kolumny z tabeli wielokolumnowej ??
Ostatnio edytowany przez Rady (2008-10-01 19:11:38)