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;