Код: Выделить всё
CREATE PROCEDURE GET_ADDR_STRING (
abon_id integer)
returns (
abon_name varchar(120),
adr_string varchar(200))
as
declare variable adr_index varchar(6);
declare variable adr_region varchar(50);
declare variable adr_raion varchar(50);
declare variable adr_city varchar(60);
declare variable adr_street varchar(60);
declare variable adr_house varchar(15);
declare variable adr_korpus varchar(15);
declare variable adr_kvartira varchar(50);
declare variable adr_dop_info varchar(50);
begin
select abon_name, adr_index, adr_region, adr_raion, adr_city, adr_street, adr_house, adr_korpus, adr_kvartira, adr_dop_info
from abonents where (id = :abon_id) into :abon_name, :adr_index, :adr_region, :adr_raion, :adr_city, :adr_street, :adr_house, :adr_korpus, :adr_kvartira, :adr_dop_info;
if (not adr_index = '') then adr_index = adr_index || ', ';
if (not adr_region = '') then adr_region = adr_region || ', ';
if (not adr_raion = '') then adr_raion = adr_raion || ', ';
if (not adr_city = '') then adr_city = adr_city || ', ';
if (not adr_street = '') then adr_street = adr_street || ', ';
if (not adr_house = '') then adr_house = adr_house || ', ';
if (not adr_korpus = '') then adr_korpus = adr_korpus || ', ';
if (not adr_kvartira = '') then adr_kvartira = adr_kvartira || ', ';
if (not adr_dop_info = '') then adr_dop_info = adr_dop_info || ', ';
adr_string = adr_index || adr_region || adr_raion || adr_city || adr_street || adr_house || adr_korpus || adr_kvartira || adr_dop_info;
suspend;
end
Где тут могут быть грабли?
Сервер: Firebird 2.0.3 на Linux (CentOS)