|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对免费版的用户也具有充足的支持服务。在dev.mysql.com上,一个大型的MySQL学习教程强大社区用户和开发者可以讨论所有关于MySQL的事情。这个站点拥有博客、指南、视频、技术交流会、白皮书和论坛等方式的交流。oracle
算一字符串在别的一字符串e出F的次
AuidelaVega,菲律e
CREATEFUNCTIONNUM_CHARS(INSTRINGVARCHAR2,INPATTERNVARCHAR2)
RETURNNUMBER
IS
COUNTERNUMBER;
NEXT_INDEXNUMBER;
STRINGVARCHAR2(2000);
PATTERNVARCHAR2(2000);
BEGIN
COUNTER:=0;
NEXT_INDEX:=1;
STRING:=LOWER(INSTRING);
PATTERN:=LOWER(INPATTERN);
FORIIN1..LENGTH(STRING)LOOP
IF(LENGTH(PATTERN)<=LENGTH(STRING)-NEXT_INDEX+1)
AND(SUBSTR(STRING,NEXT_INDEX,LENGTH(PATTERN))=PATTERN)THEN
COUNTER:=COUNTER+1;
ENDIF;
NEXT_INDEX:=NEXT_INDEX+1;
ENDLOOP;
RETURNCOUNTER;
END;
代a剖析:
代a不是很s,使用NEXT_INDEX加一f增,INSTRING做遍v,INSTRING字符串的第NEXT_INDEX字符_始截取
LENGTH(PATTERN)L度的字符串,假如截取的字符串等於PATTERN,t灯COUNTER+1,在PL/SQLDeveloper+Oracle10+WINNT
{乐成。
如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。 |
|