create procedure lib_string_sub (
strg_in varchar( 32765),
strg_beg smallint,
strg_len smallint)
returns (
strg_out varchar( 32765))
as
declare variable strg_chr char( 1);
declare variable strg_cpy varchar( 32765);
begin
/*
get substring
strg_beg : 1 ..
*/
if ( (strg_in is null)
or (strg_beg is null)
or (strg_beg <= 0)
or (strg_len is null)
or (strg_len <= 0))
then
strg_out = null;
else
begin
strg_cpy = strg_in;
while (1 < strg_beg)
do
begin
strg_cpy = substring( strg_cpy from 2);
strg_beg = strg_beg - 1;
end
strg_out = '';
while (0 < strg_len)
do
begin
strg_chr = substring( strg_cpy from 1 for 1);
if (strg_chr || '.' <> '.')
then
begin
strg_out = strg_out || strg_chr;
strg_cpy = substring( strg_cpy from 2);
strg_len = strg_len - 1;
end
else
begin
strg_len = 0;
end
end
end
suspend;
end