postgresql 写存储过程传入的参数为字符串('4,5,6,8,9,10')个数不确定时,如何一次性删除
来源:互联网 发布:积分下载系统源码 编辑:程序博客网 时间:2024/05/31 13:14
1.需要用到切割字符串函数:regexp_split_to_array
函数:regexp_split_to_array(string text, pattern text [, flags text ])
说明:Split string using a POSIX regular expression as the delimiter. See Section 9.7.3 for more information. 利用正则表达式将字符串分割成数组
例子:SELECT regexp_split_to_array('4,5,6,8,9', E'\\,') = {4,5,6,8,9}
2.需要用到取数组长度array_length
函数:array_length(数组名,1);
例子:SELECT array_length(array[1,2,3],1)=3;
存储过程:
CREATE OR REPLACE FUNCTION 存储过程名字(传入的参数(id) text)//参数例如:'4,5,6,8,9,10'
RETURNS void AS //无返回类型
$BODY$
DECLARE
x int; //定义一个参数来标示数组下标
count int; //记录切割完字符串存入数组中,数组中字符的个数
array1 text[]; //切割字符串存入数组
BEGIN
SELECT regexp_split_to_array(id,E'\\,') INTO array1;
x := 1;
SELECT array_length(array1,1) INTO count;
WHILE x < count LOOP //执行循环删除
DELETE
FROM 表名 WHERE 表的字段=array1[x]::int;
x := x+1;
END LOOP;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
- postgresql 写存储过程传入的参数为字符串('4,5,6,8,9,10')个数不确定时,如何一次性删除
- 当UIActionSheet的title个数不确定时如何处理
- 函数参数个数不确定时使用va_start
- Enterprise Library- Data Block使用oracle存储过程,字符串参数传入值为""时出现问题的解决
- postgresql 存储过程 把一个表的部分数据插入另一个表中(条件:传入的某些参数作为检索条件并且可能为空值)
- 写存储过程时如何对传进去的参数进行字符串的匹配
- java中的arrayList传入oracle中的以数组(array)为参数的存储过程
- java调用oracle存储过程传入参数为数组的处理
- JDBC执行Oracle传入参数为集合对象的存储过程
- 存储过程传入DataTable参数
- 如何 控制传入的参数减少存储过程的代码量
- .net 如何将datatable作为参数传入sql的存储过程
- SQLSERVER存储过程如何写带参数的游标
- SQLSERVER存储过程如何写带参数的游标
- 存储过程/SQL中参数传入传出的写法
- oralce 存储过程传入 record 类型的参数??
- java ibatis调动oracle传入clob参数的存储过程
- Java调用Oracle存储过程传入数组参数的方法
- STM8四路PWM配置
- 关于查看jdk32位还是64位的超简单方法
- Hibernate: org.hibernate.exception.SQLGrammarException: could not insert: 错误
- 插入排序
- Android的Recovery快速汉化
- postgresql 写存储过程传入的参数为字符串('4,5,6,8,9,10')个数不确定时,如何一次性删除
- SVN+Nginx自动部署脚本
- Ubuntu 14.04 安装Apache、MySQL、PHP、JDK7、Tomcat7、vsFTPd、Open SSH Server快速步骤
- Android_07_短信防火墙
- 文艺编程 Literate Programming (原文中英文对照)
- 第一章 基本语法-3判断语句(if)
- 自制新浪微博动态
- 一个适合MapReduce处理的gz压缩方式
- jsp九大内置对象、四大作用域和session的生命周期