oracle存储过程——按id更新相关信息
2012-01-20 10:28
295 查看
先分析一下
根据提供的参数,进行对相应id的姓名性别进行更改,也就是说必须对下面的SQL语句进行拆分
拆分成
1.update test set name='
2.郭德纲 ——也就是传递过来的参数
3.' , sex='
4.男
5.' where id='
6.1001
7.'
上面的拆分只是一个思路,在实际编写的过程中可根据情况进行调整,由于涉及到多个字段的更新(即动态更新),必须要考虑的是","如何添加的问题,不理解没关系,看代码就懂了
我的思路是:
判断相应字段的参数是否为空,若不为空则进行更新操作(即构造mypl)
那么里面的''''连续四个单引号是什么??是为了对update语句中的单引号进行转义,这部分在网上不难找到/article/8126687.html
每对mypl进行构造一次,则在后面加个",",然后再最后将最后面的逗号通过substr函数去掉
===================================
插入的操作也和这个类似
根据提供的参数,进行对相应id的姓名性别进行更改,也就是说必须对下面的SQL语句进行拆分
update test set name='郭德纲' , sex='男' where id='1001'
拆分成
1.update test set name='
2.郭德纲 ——也就是传递过来的参数
3.' , sex='
4.男
5.' where id='
6.1001
7.'
上面的拆分只是一个思路,在实际编写的过程中可根据情况进行调整,由于涉及到多个字段的更新(即动态更新),必须要考虑的是","如何添加的问题,不理解没关系,看代码就懂了
CREATE OR REPLACE PROCEDURE updateinfo_id( myid in varchar, myname in varchar, mysex in varchar) AS mypl varchar2(100); myname2 varchar(20); mysex2 varchar(20); BEGIN mypl:='update test set '; if(myname is not null) then mypl:=mypl || 'name=' ||''''|| myname ||''''||' ,'; end if; if(mysex is not null) then mypl:=mypl || 'sex=' ||''''|| mysex ||''''|| ' ,'; end if; mypl:=substr(mypl,0,length(mypl)-1); mypl:=mypl || 'where id=' ||''''|| myid ||''''; dbms_output.put_line(mypl); execute immediate mypl; select name,sex into myname2,mysex2 from test where id=myid; dbms_output.put_line('编号' || myid ||'姓名'|| myname2 || '性别' || mysex2); END; /
我的思路是:
判断相应字段的参数是否为空,若不为空则进行更新操作(即构造mypl)
那么里面的''''连续四个单引号是什么??是为了对update语句中的单引号进行转义,这部分在网上不难找到/article/8126687.html
每对mypl进行构造一次,则在后面加个",",然后再最后将最后面的逗号通过substr函数去掉
===================================
插入的操作也和这个类似
相关文章推荐
- 【汇总】国际会议 信息安全相关 -- 2014-10更新
- oracle存储过程——按id查询相关数据,并输出
- 通过产品ID或者SKU获取产品相关信息(ShortDescription、Name、Price、ProductUrl、ImageUrl)
- MySQL索引统计信息更新相关的参数
- oracle存储过程——插入相关信息
- ArcGIS相关帮助网址大全——[更新了ArcGIS10.2的帮助信息]
- android系统获取系统相关信息(如Android设备的唯一ID等)原理
- 关联菜单(选中洲名列出相关信息 4000 )效果:http://free.2259.com/jscode.asp?js_id=940
- maven-git-commit-id-plugin插件,jar包带上git commit相关信息
- 根据mac地址+deviceid获取设备唯一编码 获取手机及SIM卡相关信息
- 解决奖惩信息更新页面信息id不能传到controler层,其他都可以
- ibatis学习之--6、根据id来更新用户信息
- JSP自定义标签——调用数据库(通过id号搜索相关信息)
- android获取系统相关信息(后续更新)
- 更新了 SCCInfoCleaner 2003 (VS.Net项目解除VSS相关信息的小工具)
- STL & Boost 相关中文信息收集(持续更新中)
- sql,scope_identity,procedure,tran,substring,cast,convert,charindex,插入角色的同时插入角色拥有的权限,权限使用权限列表表示,列表用逗号分隔权限的id,更新角色信息,同时更新权限信息
- android系统获取系统相关信息(如Android设备的唯一ID等)(源码)
- MySQL索引统计信息更新相关的参数
- STL & Boost 相关中文信息收集(持续更新中)