先分析一下
根据提供的参数,进行对相应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