我是新来的,求解一个字符串处理的问题
写一个函数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;
错在哪里呢?请指教,谢谢!
传入参数 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;
错在哪里呢?请指教,谢谢!
...全文
相关推荐
brute-force-anagram-solver:一个低效的 anagram 求解器,蛮力猜测 - 用 python 编写
蛮力字谜求解器 一个低效的 anagram 求解器,蛮力猜测 - 用 python 编写
计算机辅助建筑设计--方程求解.pptx
计算机辅助建筑设计--方程求解.pptx
Java回溯法求分割回文字符串源码
Java回溯法求分割回文字符串源码,PalindromeSplitDemo.zip
寻找字符串中最长的回文子串的长度
找到字符串中最长的回文子串,并返回其长度
使用C语言提取子字符串及判断对称子字符串最大长度
主要介绍了使用C语言提取子字符串及判断对称子字符串最大长度,文后附送了一道ACM竞赛题目,需要的朋友可以参考下


