下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、create or repl ace functionsp_re place _prop erty_value(v_chvarchar2,v_fromvarchar2,/*v_to varchar2) return varchar2creator:danchencreate time:2008-4-19function:re placetaobao'propertyname and propertyvalue id as groupv_ch属性串;v_from 源属性;v_to目标属性,目标属性可为空,则变成删除属性*/ as-定义返回的返回的属性字符串 result_v varcha
2、r2(200):="-定义剩余属性字符串变量 temp_v varchar2(200):="-定义分号位置 fenhao_address number;-定义临时属性对变量 v_pv varchar2(20);begin if v ch is null or v from is null then return 'error'end if;if instr(v_ch,':') = 0 or instr(v_from,':')= 0 then return 'error'end if;temp_v := v_ch
3、丄loop fenhao_address := instr(temp_v,'');if fenhao address=0 then-没有找到分号,则为最后一组属性名:属性值 v_pv := temp_v;-检查属性是否是要替换的属性 if v_pv != v_from then result_v := result_v|''|v_ pv ;else if v to is not null then result_v := result_v|''|v_to;end if;end if;-跳出循环 exit;else-取出属性对 v_pv := su
4、bstr(temp_v,1,instr(temp_v,'')-1);-检查属性是否是要替换的属性 if v_pv != v_from then result_v := result_v|''|v_ pv ;else if v to is not null then result_v := result_v|''|v_to;end if;end if;-得到剩余的属性对 temp_v := substr(temp_v,instr(temp_v,'')+1);end if;end loop;-对结果进行处理,去掉最左侧的分号 if s
5、ubstr(result_v,1,1)='' thenresult_v := substr(result_v,2);end if;-返回结果return result_v;end sp_re pl ace_ prop erty_value;第一个存储过程使用示例:SQL> select sp_re place_ prop erty_value('33392:118167;33393:107054;33391:118167','33393:107054',”)from dual;SP_RE PLACEPROP ERTY_VALUE('
6、33392:118167;33393:107054;33391:118167','33393:10705433392:118167;33391:118167SQL> select sp_re place_ prop erty_value('33392:118167;33393:107054;33391:118167','33393:107054','33393:100') from dual;SP_RE PLACEPROP ERTY_VALUE('33392:118167;33393:107054;33391:118
7、167','33393:10705433392:118167;33393:100;33391:118167第二个存储过程,检查相关属性对在目标属性串是否存在,常用于select查询语句(使用oracle提供的like查询会不准确)create or repl ace function sp_exist_ pro perty(v_strpvvarchar2,v_ pv varchar2) return number /* creator:danchen create time:2008-4-20function:检查v_pv 在属性串v_strpv中是否全部存在*/ as typ
8、e t_pvs is table of varchar2(50);-保存分解后v_strpv v_pvs t_p vs:=t_ pvs();-保存分解后v_pvs_pvs t_p vs:=t_ pvs();-定义剩余属性字符串变量last_ pvs varchar2(200):="-临时属性变量 temp_ pv varchar2(50);-定义分号位置 fenhao_address number;-定义比较结果,0不存在;1存在 v_check number;v_result number;beginif (v_str pv is null) or (v_ pv is null)
9、then return -1;end if;if instr(v_str pv,':')=0 or instr(v_ pv,':')=0 then return -2;end if;-分解 v_strpv last_ pvs := v_str pv;loop fenhao_address := instr(last_ pvs,'');if fenhao address=0 then-没有找到分号,则为最后一组属性名:属性值;取出属性对 temp_ pv := last_ pvs;v_p vs.extend;v_P vs(v_ pvs.last)
10、:= temp_ pv;-跳出循环 exit;else-取出属性对 temp_ pv := substr(last_ pvs,1,instr(last_ pvs,'')-1);-写入数组 v_p vs.extend;v_P vs(v_ pvs.last) := temp_ pv;-得到剩余的属性对 last_ pvs := substr(last_ pvs,instr(last_ pvs,'')+1);end if;end loop;-分解v_pv last_ pvs := v_pv;loop fenhao_address := instr(last_ pvs,
11、'');if fenhao address=0 then-没有找到分号,则为最后一组属性名:属性值;取出属性对 temp_ pv := last_ pvs;s_p vs.extend;s_p vs(s_ pvs.last) := temp_ pv;-跳出循环 exit;else-取出属性对 temp_ pv := substr(last_ pvs,1,instr(last_ pvs,'')-1);-写入数组 s_p vs.extend;s_p vs(s_ pvs.last) := temp_ pv;-得到剩余的属性对 last_ pvs := substr(la
12、st_ pvs,instr(last_ pvs,'')+1);end if;end loop;-检查是否存在 for i in 1.s_ pvs.count loop v_check := 0;for j in 1.v_ pvs.count loop if v_p vs(j)=s_ pvs(i) then v_check := 1;exit;end if;end loop;-如果在本轮循环中,没有一次为真,则返回 ,不用再继续比较 if v check=0 then v_result := 0;exit;end if;end loop;-如果循环执行完 if v check=1
13、 then v_result := 1;end if;-返回结果 return v_result;end sp_exist_ prop erty;第二个存储过程使用示例:SQL> select sp_exist_ prop erty('33392:118167;33393:107054;33391:118167','1:118167') from dual;SP_EXIST_ PROP ERTY('33392:118167;33393:107054;33391:118167','1:118167')SQL> selec
14、t sp_exist_ prop erty('33392:118167;33393:107054;33391:118167','33393:107054') from dual;SP_EXIST_ PROP ERTY('33392:118167;33393:107054;33391:118167','33393:107054')SQL> select sp_exist_ prop erty('33392:118167;33393:107054;33391:118167','33392:118167;3
15、3393:107054') from dual;SP_EXIST_ PROP ERTY('33392:118167;33393:107054;33391:118167','33392:118167;33393:1SQL> select sp_exist_ prop erty('33392:118167;33393:107054;33391:118167','33392:118167;33393:10705') from dual;SP_EXIST_ PROP ERTY('33392:118167;33393:107054;33391:118167','33392:118167;33393:1SQL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工作总结之工程管理部实习总结
- 学校少先队工作计划3篇
- 银行内部管理档案归档制度
- 银行财务管理内部控制测试制度
- 《改革开放经验的科》课件
- 《故障模式分析》课件
- 科学上册课件《总结我们的天气观察》
- 办公室护肤宝典课件
- 生物细胞课件各类细胞电镜
- 南湖上的小船课件
- 2024年新高考一卷读后续写说题课件高三英语上学期一轮复习专项
- 2024年新人教版三年级数学上册《第6单元第11课时 数字编码》教学课件
- 2024-2024学年第二学期总务处的工作总结
- (北师大版)五年级数学上册期末复习计划
- 西藏林芝地区一中2025届高二数学第一学期期末联考试题含解析
- 《昼夜交替》(教学设计)-2023-2024学年五年级下册科学苏教版
- DBJ04∕T 325-2024 城市电力电缆隧道工程技术标准
- 2024届九省联考高三新高考适应性测试英语试题及答案
- 2024年秋季新人教版七年级上册道德与法治全册教案
- 标准夫妻婚内协议书模板
- 人教版三年级上册道德与法治全册知识点 (复习资料)
评论
0/150
提交评论