oracle匹配两个字符串,PLSQL实现两个字符串匹配 1

功能:找出字符串B在字符串A中存在的字符

/********************************************

找出字符串l_b中字母在字符串l_a中存在的字母

**********************************************/

DECLARE

l_a Varchar2(50) := 'ABCDEFGHIK';

l_b VARCHAR2(50) := 'EDGLKJOS';

l_length NUMBER;

l_length2 NUMBER;

TYPE var_a IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;

vara var_a;

varb var_a;

v VARCHAR2(1);

l_count NUMBER;

BEGIN

l_length := LENGTH(l_a);

l_length2 := LENGTH(l_b);

l_count := 0;

--把字符串l_a放入数组vara数组中

FOR i IN 1..l_length LOOP

vara(i) := SUBSTRB(l_a,1,1);

l_a := SUBSTRB(l_a,2,l_length);

END LOOP;

--把字符串l_b放入数组varb数组中

FOR i IN 1..l_length2 LOOP

varb(i) := SUBSTRB(l_b,1,1);

l_b := SUBSTRB(l_b,2,l_length2);

END LOOP;

--双重循环找出l_b在l_a中存在的字母

FOR i IN 1..l_length2 LOOP

FOR j IN 1..l_length LOOP

l_COUNT := l_COUNT + 1;

IF varb(i) = vara(j) THEN

dbms_output.put(varb(i) || ' ');

END IF;

END LOOP;

END LOOP;

dbms_output.put_line(l_count);

l_count := 0;

--对l_a进行排序

FOR i IN 1..l_length LOOP

FOR j IN i..l_length LOOP

IF vara(i) > vara(j) THEN

v := vara(i);

vara(i) := vara(j);

vara(j) := v;

END IF;

END LOOP;

END LOOP;

--输出l_a字符串

FOR i IN 1..l_length LOOP

dbms_output.put(vara(i) || ' ');

END LOOP;

dbms_output.put_line('');

--对l_b进行排序

FOR i IN 1..l_length2 LOOP

FOR j IN i..l_length2 LOOP

IF varb(i) > varb(j) THEN

v := varb(i);

varb(i) := varb(j);

varb(j) := v;

END IF;

END LOOP;

END LOOP;

--输出l_b字符串

FOR i IN 1..l_length2 LOOP

dbms_output.put(varb(i) || ' ');

END LOOP;

dbms_output.put_line('');

--先对l_a和l_b进行排序,然后进行比较

FOR i IN 1..l_length LOOP

<>

FOR j IN 1..l_length2 LOOP

l_count := l_count + 1;

IF vara(i) = varb(j) THEN

dbms_output.put(vara(i) || ' ');

EXIT lable_1;

END IF;

END LOOP lable_1;

END LOOP;

dbms_output.put_line(l_count);

END;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28268054/viewspace-1075639/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值