菜鸟请教一个plsql写法
现在plsql中,有一个变量有三种状态,并且每一个状态都会更新同一张表。
但是每次的更新字段不同。该如何用一个sql语句来完成?
STRSQL = 'UPDATE '
STRSQL = STRSQL 'UPDATE TABLE'
STRSQL = STRSQL 'SET '
if 状态1 then
STRSQL = STRSQL 状态1= 状态1'
end if
if 状态2 then
STRSQL = STRSQL 状态2= 状态2'
end if
if 状态3 then
STRSQL = STRSQL 状态3= 状态3'
end if
是像这样拼接吗?拼接好之后,该如何执行STRSQL 这个字符串呢?
------解决方案--------------------declare
li_num number(1);
ls_sql varchar2(2000);
begin
if li_num =1 then
ls_sql=' update emp set job =''1''' ;
else if li_num=2 then
ls_sql=' update emp set ename =''1''' ;
else if li_num = 3 then
ls_sql=' update emp set sal=1 ' ;
end if ;
end if ;
end if ;
execute immediate ls_sql ;
end ;
------解决方案--------------------lz是这个意思吧?
declare
li_num number(1);
ls_sql varchar2(2000);
begin
ls_sql := 'update emp ';
if 1 = 1 then
ls_sql:= ls_sql
------解决方案-------------------- ' set job =''1'' ' ;
end if;
if 2 = 2 then
ls_sql:=ls_sql
------解决方案-------------------- ' ename =''1'' ' ;
end if;
if 3 = 3 then
ls_sql:=ls_sql
------解决方案-------------------- ' set sal=1 ' ;
end if ;
execute immediate ls_sql ;
end ;