zOs/SQL/EW65
-- error ew65 if left(...) erroneously fails
-- with sqlcode=-579 FUNCTION ATTEMPTED TO READ DATA
--
set current sqlid = 'S100447';
drop function oa1p.ew65(i varchar(10));
drop function oa1p.ew65ca(i varchar(10));
--#SET TERMINATOR #
create function oa1p.ew65(i varchar(10))
returns varchar(5)
deterministic no external action contains sql
begin
if i like 'l%' then
return left(i, 5);
elseif left(i, 1) = 'r' then
return right(i, 5);
else
return 'else';
end if;
end #
create function oa1p.ew65ca(i varchar(10))
returns varchar(5)
deterministic no external action contains sql
begin
return case when i like 'l%' then left(i, 5)
when left(i, 1) = 'r' then right(i, 5)
else 'else' end;
end #
--#SET TERMINATOR ;
select oa1p.ew65ca('l234567890') from sysibm.sysDummy1;
select oa1p.ew65ca('r234567890') from sysibm.sysDummy1;
select oa1p.ew65ca('1234567890') from sysibm.sysDummy1;
select oa1p.ew65('l234567890') from sysibm.sysDummy1;
select oa1p.ew65('r234567890') from sysibm.sysDummy1;
select oa1p.ew65('1234567890') from sysibm.sysDummy1;