存储过程分割一个字段为多个值
来源:互联网 发布:mc9s12x 串口编程 编辑:程序博客网 时间:2024/06/05 21:02
如图有这样一个需求:
需要根据serv_code=111得到对应的cmd_list中的值,并且,要将1000,1001,1002分别分割出来插入到另一个表中。
create table yyb_serv( SERV_CODE VARCHAR2(1024), CMD_LIST VARCHAR2(100))insert into yyb_serv values('111','1000,1001,1002');create or replace procedure Testis--定义游标类型type serv_cursor is ref cursor;--定义一个游标变量serv_cur serv_cursor ;--定义临时变量v_cmd_list yyb_serv.cmd_list%type;temp varchar(2000);result varchar2(32);begin ---取出要分割的字段的值open serv_cur for select cmd_list from yyb_serv where serv_code like '%111%'; --循环取出游标内容 loop fetch serv_cur into v_cmd_list; exit when serv_cur %notfound; ----------------- temp:=v_cmd_list; dbms_output.put_line('-------start----------'); --开始循环分割字段 while(length(temp)>0) loop --如果有逗号,以逗号进行分割 if INSTR(temp,',' ) > 0 then result:= SUBSTR(temp ,1,INSTR(temp,',') - 1 ); --取到第n个逗号(也就是第n次循环)后面的剩余字符串 temp := SUBSTR(temp,INSTR(temp,',') + 1 , LENGTH(temp) - INSTR(temp,',')); --没有逗号,说明不需要分割 else result:= temp; temp:= ''; end if; --输出当前的已分割出的结果 DBMS_OUTPUT.put_line(result); end loop; dbms_output.put_line('-------end----------'); ----------------- dbms_output.put_line('结束');--结束游标循环end loop;close serv_cur;end test;
- 存储过程分割一个字段为多个值
- oracle 使用存储过程分割字符串为数组
- mysql 通过存储过程分割字符串为数组
- 分割存储过程
- 自定义分割存储过程 SP_Split,将一个字符串分割成一个表
- 使用存储过程为海量数据库表更新字段
- 为表添加和删除字段的存储过程
- 分割一个字段成为行
- 自己写的一个存储过程例子,用来增加字段
- 存储过程将一个表中的一个字段值更新到另一个表相同字段,
- 逗号分割字符串存储过程
- mysql存储过程字符串分割
- ORACLE 分割字段为多行数据
- 为增加一个字段
- 表增加字段存储过程
- 表修改字段存储过程
- 表删除字段存储过程
- 添加字段的存储过程
- AVI破解及Android2.3实现
- JSP2自定义标签(一)——简单标签
- MFC Unicode 到 ansi 的转换
- 在AIX6.1下bash运行异常的解决
- 软件项目版本号的命名格式
- 存储过程分割一个字段为多个值
- EVC4安装
- u-boot-2009.08在2440上的移植详解(一)
- PCB attention_update
- AVI文件在opencore框架下的解析
- RM/RMVB文件格式总结
- 关于NSArray的排序问题
- 获取指定日期是星期几
- android学习---通过android帮助学习TextView属性