Ładny brzuch

witam

mam taka procedurke napisana w postgresie:

CREATE FUNCTION DOBOR_JED_ADRES_JEDNOSTKI (       IPM_ID_JED INTEGER ) RETURNS       SETOF dobor_jed_struct AS $$ DECLARE       lvRecord RECORD; BEGIN       FOR lvRecord IN       SELECT             'J' As ALGORYTM,             -1 As ID_UZYT,             JED.id_jed As ID_JED,             JED.rodz_jed As RODZ_JED,             JED.opis_jed As OPIS_JED,             JED.ulica As ULICA_JED,             JED.nr_dom As nr_domu,             JED.nr_lok As nr_lokalu,             JED.telefon_1 As TELEFON_1,             JED.telefon_2 As TELEFON_2,             JED.fax As FAX,             JED.email As EMAIL,             JED.czy_internet As CZY_INTERNET,             JED.NAZWA As NAZWA,             JED.KOD_POCZTY As KOD_POCZTY,             WOJ.kod As WOJ_KOD,             WOJ.nazwa As WOJ_NAZWA,             POW.kod As POW_KOD,             POW.nazwa As POW_NAZWA,             GMI.kod As GMI_KOD,             GMI.nazwa As GMI_NAZWA,             MIE.kod As MIE_KOD,             MIE.nazwa As MIE_NAZWA             FROM SL_JEDNOSTKI JED             INNER JOIN SL_MIEJSCOWOSC_VIEW MIE ON MIE.kod = JED.kod_miej             INNER JOIN SL_GMINA_VIEW GMI ON GMI.kod = MIE.kod_gminy             INNER JOIN SL_POWIAT_VIEW POW ON POW.kod = SUBSTR(GMI.kod, 1, 4)             INNER JOIN SL_WOJEWODZTWO_VIEW WOJ ON WOJ.kod = SUBSTR(POW.kod, 1, 2)             WHERE JED.ID_JED = IPM_ID_JED LOOP                 RETURN NEXT lvRecord;       END LOOP;       RETURN; END;    $$ LANGUAGE 'plpgsql';

i taki typ uzyte w tej procedurze:

CREATE TYPE dobor_jed_struct AS (  "algorytm" CHAR(1),  "id_uzyt" INTEGER,  "id_jed" INTEGER,  "rodz_jed" VARCHAR(150),  "opis_jed" VARCHAR(1000),  "ulica_jed" VARCHAR(150),  "nr_domu" VARCHAR(150),  "nr_lokalu" VARCHAR(150),  "telefon_1" VARCHAR(150),  "telefon_2" VARCHAR(150),  "fax" VARCHAR(150),  "email" VARCHAR(150),  "czy_internet" CHAR(1),  "nazwa" VARCHAR(150),  "kod_poczty" VARCHAR(150),  "woj_kod" VARCHAR(150),  "woj_nazwa" VARCHAR(150),  "pow_kod" VARCHAR(150),  "pow_nazwa" VARCHAR(150),  "gmi_kod" VARCHAR(150),  "gmi_nazwa" VARCHAR(150),  "mie_kod" VARCHAR(150),  "mie_nazwa" VARCHAR(150) );

teraz problem jest taki ze jak robie sobie selecta na wywoluniu tej procedurki to dostaje komunikat ze typ zwracany nie roowna sie deklarowanemu; znalazlem ze powodem bledu jest --> 'J' As ALGORYTM, <--; jak wywale to z typu i z selecta w procedurze wszystko jest ok...

ktos ma pomysl jaki typ powinienem zadeklarowac (albo moze urzyc jakiegos castowania)?

ps. jak uzyje funkcji ascii('J') i w typie zadeklaruje algorytm jako integer to wszystko gra, no ale kurde przeciez musi byc lepszy sposoob :/



ok
zrobilem to uzywajac funkcji substr i deklarujac algorytm jako text;

teraz juz z ciekawosci -> zna ktos inny sposoob bo to co zrobilem to mi sie zdaje droga troche na okolo:)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •