Здравствуйте все! Есть функция... с нюансом:| Код | create or replace function LMM_ALTNAMES(REG_ID in int) return varchar2 is cursor cur is select GN.GEONAME.GEONAME from GN.GEONAME where REG_ID = GN.GEONAME.REG_N and GN.GEONAME.NORM = 0 order by GN.GEONAME.GEONAME; anames varchar2(1000); aname varchar2(100); begin anames := NULL; open cur; loop fetch cur into aname; if aname is NULL /* без этого при пустом датасете цикл срабатывает один раз */ then exit; anames := concat(anames, aname); anames := concat(anames, '\n'); /* ??? для Rave Reports DataMemo, ещё не проверял... */ exit when cur%NOTFOUND; end loop; close cur; return anames; end LMM_ALTNAMES; |
Если датасет непустой, то последняя запись дублируется:
| Код | Connecting to the database homedb_gn. v_Return = Адыгейск\nТеучежск\nТеучежск\n << два раза!!! Process exited. Disconnecting from the database homedb_gn. |
Как корректно выйти из цикла?
|