Код: Выделить всё
SET TERM ^ ;
create or alter procedure SL_REPLACE_STR (
STRING char(250),
SRCHFOR char(250),
REPLACEWITH char(250))
returns (
REZ char(250))
as
declare variable STRLEN smallint;
declare variable SRCHLEN smallint;
declare variable I integer;
begin
strlen=char_length(trim(string));
srchlen=char_length(trim(srchfor));
rez='';
if (srchlen>strlen) then exit;
i=1;
while(i<=(strlen-srchlen+1)) do
begin
if (substring(string from i for srchlen)=srchfor) then
begin
rez=substring(string from 1 for i-1)||trim(replacewith)||substring(string from i+srchlen for strlen);
end
i=i+1;
end
end^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE SL_REPLACE_STR TO SYSDBA;
но вот когда открываю редактор и делаю тот же запрос SELECT * FROM SL_REPLACE_STR('123', '2', 'q') выдаёт null.
я не понимаю что происходит.подскажите пожалуйста в чём я затупил.