频道栏目
IT货架 > > 正文
初学者请问一个plsql写法
网友分享于:Jun 12, 2018 10:42:07 PM    来源: IT货架   
菜鸟请教一个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 ;

广告服务联系QQ:1134687142 | 网站地图

版权所有: IT货架- 内容来自互联网,仅供用于技术学习,请遵循相关法律法规. 京ICP备11030978号-1