先分析一下

根据提供的参数,进行对相应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语句中的单引号进行转义,这部分在网上不难找到http://www.voidcn.com/article/p-kzxhbqih-be.html

每对mypl进行构造一次,则在后面加个",",然后再最后将最后面的逗号通过substr函数去掉

===================================

插入的操作也和这个类似

oracle存储过程id递增,oracle存储过程——按id更新相关信息相关推荐

  1. oracle运行原理ppt,oracle数据库基础培训PPT

    PPT内容 这是一个oracle数据库基础培训PPT,主要介绍了描述 Oracle 服务器的体系结构及其主要构件.列举用户连接到 Oracle 实例所涉及的结构等内容. Oracle数据库维护培训胶片 ...

  2. oracle接收输入参数,Oracle带输入输出参数存储过程(包括sql分页功能)

    记录一下,免得以后忘记了又要到处去找. begin /*这里不能直接执行select语句但可以直接执行update.delete.insert语句*/ end里面不能接执行select语句,声明会话级 ...

  3. oracle存储while用mysql_oracle存储过程while

    Oracle下我个人认为有些事情不一定用存储过程,但还是说一下 oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN ...

  4. oracle sql loop merge,Oracle之存储过程和MERGE INTO语句

    一.MERGE INTO语句 1.merge into语句的功能:我们操作数据库的时候,有时候会遇到insert或者Update这种需求.我们操纵代码时至少需要写一个插入语句和更新语句并且还得单独写方 ...

  5. Oracle的sql开发之存储过程实战

    转载:http://blog.csdn.net/u013057786/article/details/17165623 1.定义所谓存储过程(Stored Procedure),就是一组用于完成特定数 ...

  6. Oracle 存储过程,Hibernate 调用存储过程,JDBC调用存储过程,Oracle 动态SQL

    Oracle 存储过程学习 目录 Oracle 存储过程........................................................................ ...

  7. cyq.data mysql_CYQ.Data 数据框架 数据库分页方式及存储过程[SQL2000/SQL2005/Oracle]

    在 CYQ.Data 分页是内部集成的功能,针对不同的数据库,使用不同的分页形式. 1:Access:集成:使用3次Top分页 2:MySql:集成,使用LimitN分页 3:Sqlite:集成,使用 ...

  8. Oracle进阶(二)存储过程(Procedure)

    目录 1.名词释义 2.基本语法 3.异常释义 4.存储过程 1.名词释义 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,是由流程控制和SQL语句书写的命名语句块. ...

  9. oracle主机自增,Oracle中实现ID自增

    一.自增列 自增列是数据库中值随插入的每个行自动增加的一列.它最常用于主键或 ID 字段,这样每次增加一行时,不用指该字段的值,它就会自动增加,而且是唯一的. 当在 MySQL 中定义列时,我们可以指 ...

最新文章

  1. Vue父组件调用子组件的方法并传参的两种方式(用$refs.refName.functionName、window.function)
  2. 「镁客·请讲」快仓杨威:赋予仓库灵魂,让智能仓库系统自我进化和迭代
  3. freemarker变量自加
  4. Laravel核心解读--控制器
  5. linux(centos) NET模式网络配置
  6. 从零开始学PowerShell(9)创建PowerShell对象
  7. mysql base dir_install_mysql57.sh
  8. ip对应的区域查询(asp.net版)
  9. EPS PanSystem v3.4.0 Full 1CD(解析试井解释软件)\
  10. 第四届“传智杯”全国大学生IT技能大赛(决赛B组)
  11. 串口485接法图_rs485通讯接口定义图详解
  12. R绘图笔记 | 生存曲线的绘制
  13. PHP与MySQL交互实现网页登录注册功能(步骤超详细!!!)
  14. 解决idea百度翻译无法使用的问题
  15. 重生之我又是蝌蚪(召唤神龙)源码和无敌版
  16. 微信小程序星级评分方法
  17. 九寨沟静态页面(html+css)
  18. android系统怎么打开4G,4g手机怎么用4g网络【图文】
  19. 冷笑话,收集很多的冷笑话
  20. uni-app使用uni-ui

热门文章

  1. 如何使用bcrypt在PHP中对密码进行哈希处理?
  2. 如何使用jQuery更改超链接的href
  3. 项目启动后去除项目标题,去除时间与状态栏Android
  4. python是一门高级的计算机语言_为有抱负的开发者推荐的最佳 10 门编程语言
  5. 云服务器部署项目:vue-cli 部署服务配置
  6. if/else if多分支语句(JS)
  7. ERROR: Could not install packages due to an EnvironmentError: [Errno 13] 权限不够的解决办法
  8. 森林怎么训练野人_第五人格:野人技能曝光!野猪可以骑,庄园中或将迎来新玩法!...
  9. html5 超链接 图像映射,链接图像
  10. springboot读取src下文件_java(包括springboot)读取resources下文件方式