Oracle 自定义函数示例
2015-11-12 14:43
483 查看
CREATE OR REPLACE FUNCTION strgetdomse(p_string2 VARCHAR2,p_string VARCHAR2) RETURN NUMBER AS --declare --p_string VARCHAR2(100):='BBB'; -- p_string2 VARCHAR2(100):='CC,AA,BB,DD'; v_length NUMBER := LENGTH(p_string); v_length2 NUMBER := LENGTH(p_string2); v_start NUMBER := 1; v_index NUMBER; p_delimiter VARCHAR2(10):=','; v_rnumber NUMBER:=0; BEGIN if(v_length>v_length2) THEN RETURN v_rnumber; END IF; WHILE(v_start <= v_length) LOOP v_index := INSTR(p_string, p_delimiter, v_start); IF v_index = 0 THEN if INSTR(p_string2,SUBSTR(p_string, v_start))>0 then v_rnumber:=v_rnumber+1; end if; v_start := v_length + 1; ELSE if INSTR(p_string2,SUBSTR(p_string, v_start, v_index - v_start))>0 then v_rnumber:=v_rnumber+1; end if; v_start := v_index + 1; END IF; END LOOP; RETURN v_rnumber; END ; 实现功能 select strgetdomse('AA,BB,CC','AA,CC') FROM DUAL; -------------------------------------------------------- SELECT RS,strgetdomse('AA,BB,CC','AA,BB'),ID FROM ( SELECT ID,to_char(wmsys.wm_concat(C)) RS FROM ( SELECT 1 ID, 'AA' C FROM DUAL UNION ALL SELECT 1 ID, 'BB' FROM DUAL UNION ALL SELECT 1 ID, 'CC' FROM DUAL UNION ALL SELECT 2 ID, 'AA' C FROM DUAL UNION ALL SELECT 2 ID, 'CC' FROM DUAL UNION ALL SELECT 2 ID, 'DD' FROM DUAL) GROUP BY ID) WHERE strgetdomse('AA,BB,CC','AA,BB')>1
相关文章推荐
- oracle启动不起来,共享内存报错
- oracle查询
- spring+hibernate工程使用JNDI连接部署至websphere,报错Caused by: java.lang.ClassNotFoundException: oracle.sql.BLO
- oracle drop table and purge
- Oracle正则表达式使用介绍
- php 链接 oracle
- ora-00031:session marked for kill处理oracle中杀不掉的锁
- win8.1 64位+oracle11g R2 64位 +powerdesigner破解版 64位+PL/SQL
- Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据
- Oracle 模式对象
- ORACLE触发器详解
- Oracle 删除表分区
- oracle数据库注入实战
- Oracle中数据库与实例的区别
- oracle 索引移动到不同的分区
- oracle OCP 11g 052 答案目录
- (4)Oracle基础--操作表中数据
- arcgis 10.2连接Oracle
- Oracle日志挖掘
- 从字符串中提取逐一提取数字id