Как склеить строковые переменные?

Как склеить строковые переменные в Oracle SQL Developer? Имеется код:
CREATE OR REPLACE 
FUNCTION get_fio(v1 IN VARCHAR, v2 IN varchar2) RETURN varchar2
IS
 
kol varchar2(1000);
kol2 varchar2(1000) := '';
 
cursor c1 IS 
SELECT person.pfio INTO kol FROM person WHERE 
person.pkflat IN (SELECT flat.pkflat FROM flat WHERE 
flat.pkhouse IN (SELECT house.pkhouse FROM house WHERE 
house.numhouse = v1 AND house.pkstreet = (SELECT street.pkstreet FROM street WHERE 
street.streetname = v2)));
 
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO kol;
kol2 := kol2 + kol; (!!!!!!!!!!!!!!!!!!!!!!!)
EXIT WHEN c1%NOTFOUND;
END LOOP;
CLOSE c1;
RETURN kol2;
END get_fio;
нужно склеить kol и kol2, либо как то вывести несколько значений, обрабатываемых запросом. В select'е может и сделал бы, но вот как это делается в функции не могу разобраться. В SQL ни бум бум...
3 ответа

В SQL стандартный знак операции конкатенации строк - ||. B PL/SQL - тожеPS Кстати, все твои подзапросы можно выкинуть, связав таблицы по JOIN


Спасибо, теперь выводит строку нормально. А как сделать, чтобы из нашего цикла выводилось найденное содержимое в виде таблицы? на подобии обычного select'а.


Сделать открытие кусора и вернуть его либо через RETURN, либо через OUT-параметр. А дальше чтение данного курсора и пробег по нему - дело вызывающей стороны