多选框 值 1,3 判断是否其中有一个值 在2,3 范围内 ,应该在
多选框 值 11,2 判断是否其中有一个值 在1,3 范围内 , 应该不在
多选框 值 1,3 判断是否其中有一个值 在1,3 ,4范围内 ,应该在
create or replace function CHECKBOX_INCLUDE_JUDGE(str_in in varchar2,
str_range in varchar2)
return varchar2 is
var_in varchar2(4000);
var_range varchar2(4000);
var_out varchar2(100);
arr1 mytype;
arr2 mytype;
var_change varchar2(100);
i NUMBER;
j NUMBER;
--判断多选框中是否包含某个值,
--str_in ,多选框实际值
--str_range,判断范围
-- 只通过in 方法 不能满足
--只通过instr方法 也不能满足
begin
var_in := str_in;
var_range := str_range;
var_out := 0;
select my_split(str_in, ',') into arr1 from dual a;
select my_split(str_range, ',') into arr2 from dual a;
i := 0;
while i < arr1.count loop
i := i + 1;
j := 0;
while j < arr2.count loop
j := j + 1;
if arr1(i) = arr2(j) then
var_out := 1;
end if;
end loop;
/*select case
when to_char(arr1(i)) in to_char(var_range) then
1
else
0
end
into var_change
from dual;
select greatest(var_out, var_change) into var_out from dual;*/
end loop;
return(var_out);
end CHECKBOX_INCLUDE_JUDGE;
str_range in varchar2)
return varchar2 is
var_in varchar2(4000);
var_range varchar2(4000);
var_out varchar2(100);
arr1 mytype;
arr2 mytype;
var_change varchar2(100);
i NUMBER;
j NUMBER;
--判断多选框中是否包含某个值,
--str_in ,多选框实际值
--str_range,判断范围
-- 只通过in 方法 不能满足
--只通过instr方法 也不能满足
begin
var_in := str_in;
var_range := str_range;
var_out := 0;
select my_split(str_in, ',') into arr1 from dual a;
select my_split(str_range, ',') into arr2 from dual a;
i := 0;
while i < arr1.count loop
i := i + 1;
j := 0;
while j < arr2.count loop
j := j + 1;
if arr1(i) = arr2(j) then
var_out := 1;
end if;
end loop;
/*select case
when to_char(arr1(i)) in to_char(var_range) then
1
else
0
end
into var_change
from dual;
select greatest(var_out, var_change) into var_out from dual;*/
end loop;
return(var_out);
end CHECKBOX_INCLUDE_JUDGE;