如何传值给存储过程中的In条件?(根据多个id查找对应的记录的处理)
来源:互联网 发布:永中office 知乎 编辑:程序博客网 时间:2024/06/11 04:26
先看这个文章
http://www.itpub.net/viewthread.php?tid=1441454&pid=17785072&page=1&extra=page%3D1#pid17785072
再看以下处理:
这里主要展现存储函数的一种用法, 比如, 参数是一串用逗号分隔的id, "123,124,125,126", 取得对应的4条记录, 先写一个存储函数, 用来解析id字符串:
然后查询语句这样写:
也可以这样写:
我们在处理这种情况的时候一般都是将id拼成一段sql, 比如这样:id in(123, 124, 125), 这样虽然能解决问题, 但是不是很安全, 如果有SQL注入的话就会导致问题.
- create or replace function str2varList( p_string in varchar2 ) return VarTableType
- as
- v_str long default p_string || ',';
- v_n varchar2(2000);
- v_data VarTableType := VarTableType();
- begin
- loop
- v_n :=instr( v_str, ',' );
- exit when (nvl(v_n,0) = 0);
- v_data.extend;
- v_data( v_data.count ) := ltrim(rtrim(substr(v_str,1,v_n-1)));
- v_str := substr( v_str, v_n+1 );
- end loop;
- return v_data;
- end;
然后查询语句这样写:
- SELECT id, name, birthday, address
- FROM table(STR2VARLIST('123,124,125,126')) t, t_user e
- WHERE e.id = t.column_value
也可以这样写:
- SELECT id, name, birthday, address
- FROM t_user e
- WHERE id in (select * from the (select cast(str2varlist(#ids#) as vartabletype) from dual))
我们在处理这种情况的时候一般都是将id拼成一段sql, 比如这样:id in(123, 124, 125), 这样虽然能解决问题, 但是不是很安全, 如果有SQL注入的话就会导致问题.
- 如何传值给存储过程中的In条件?(根据多个id查找对应的记录的处理)
- syfomy自动根据url中的id找到对应的记录
- sqlserver根据输入的两个点表中的ID号,插入一条线的记录到线表的存储过程
- Oracle简单的存储过程+根据条件修改字段值
- 根据存储过程名创建对应的命令过程
- 通用存储过程之二: 根据主键的值,判断记录是否存在的存储过程
- 通用存储过程之三:根据主键的值,查询记录的存储过程
- 通用存储过程之三:根据主键的值,查询记录的存储过程
- 通用存储过程之二: 根据主键的值,判断记录是否存在的存储过程
- Sql server中根据存储过程中的部分信息查找存储过程名称的方法【视图和Function】
- linux如何根据进程ID查找启动程序的路径
- VC2010 如何根据ID查找Ribbon的元素
- linux如何根据进程ID查找启动程序的路径
- linux如何根据进程ID查找启动程序的路径
- linux 根据端口号查找对应进程的ID,操作进程
- linux 根据端口号查找对应进程的ID,操作进程
- 根据存储过程包含某个关键字,查找相关所有存储过程信息及根据多个主键删除重复列
- 通用存储过程之五: 根据查询条件,获取表记录数的存储过程。
- VNC桌面
- SVN安装及配置
- VC++连接数据库SQL2000应用实例及登陆退出
- Ubuntu 10.04搭建ftp server
- 《Orange's 一个操作系统的实现》读书手记3(4)--- [ 保护模式(Protect Mode)]
- 如何传值给存储过程中的In条件?(根据多个id查找对应的记录的处理)
- 未将对象引用设置到对象的实例
- C/C++小型对象分配的性能测试笔记
- 转:强引用、软引用、弱引用和虚引用
- C#中断的区别
- 字符串变量由App.config文件读出
- struts2采用convention-plugin实现零配置
- 你的for循环真的高效吗——优化for循环第一章
- ajax学习笔记(1)