我是新来的,求解一个字符串处理的问题
写一个函数f_include(p_a varchar2,p_b varchar2) return number;
传入参数 p_a, p_b 均是由逗号分隔的字符串,要求判断p_b中逗号分隔的各个字符串是否均在p_a用
逗号分隔的字符串中,如果都是则返回1否则返回0
如:
select f_include('a,bc,81','b,c'),f_include('a,bc,81','bc,a') from dual;
F_INCLUDE('A,BC,81','B,C') F_INCLUDE('A,BC,81','BC,A')
-------------------------- ---------------------------
0 1
其中第一个返回 0, 第二个返回 1
我的代码如下:
create or replace function f_include(p_a varchar2,p_b varchar2) return number
is
result number:=1;
p_a_r varchar2(100) :='';
p_b_r varchar2(100) :='';
a varchar2(100):=p_a;
b varchar2(100):=p_b;
begin
if p_a_r!=p_b_r then
for i in 1..length(a) loop
p_a_r:=p_a_r||substr(a,i,instr(a,',')-1);
a:=substr(a,instr(a,',')+1);
for j in 1..length(b) loop
p_b_r:=p_b_r||substr(b,j,instr(b,',')-1);
b:=substr(b,instr(b,',')+1);
end loop;
result :=0;
end loop;
end if;
return result;
end;
错在哪里呢?请指教,谢谢!