Autor Zpráva
Perry
Profil
V oracle11 mám vytvořenou takovouhle jednoduchou fci.
create or replace
FUNCTION get_adresy(osobaID IN INTEGER, typ IN varchar2)
RETURN varchar2
AS
vystup varchar2(2000);
BEGIN
    vystup := '';   
     FOR j IN 
     (
        SELECT  d.adresa
        FROM obyvatele ob
        LEFT JOIN byt b ON b.id = ob.byt_id
        LEFT JOIN dum d ON d.id = b.dum_id
        WHERE ob.osoby_id = osobaid AND ob.prava = LOWER(typ)
     )
     LOOP
      
      vystup := vystup || j.adresa || '|';
      
     END LOOP;     
  
    return vystup;

END get_adresy


Když spustím dotaz:
 SELECT get_adresy(b.id, 'najemnik') FROM osoby b

nic se nestane...

Pokud ovšem nahradím přímo ve funkci proměnou typ ve WHERE klauzuli konstantou 'najemnik', vše funguje... co s tím ?
Kajman_
Profil *
Není v některé z těch tabulek sloupec typ? Pak si pojmenujte proměnnou v parametrech nějak nekolizně.
Perry
Profil
No jo.. díky moc.. blbá chyba

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: