greenZ

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DB2子程序:DB2 单引号

DB2 子程序中的 单引号
 
 
select concat(concat('''','hello'),'''') from sysibm.dual; 得到  'hello'
--建表
create table ind_test.t_inst_zzh(
statis_date varchar(20),
brand_code varchar(32),
cnt decimal(6,0)
) in userspace1
distribute by hash (statis_date);
 
truncate table ind_test.t_inst_zzh immediate;
select * from ind_test.t_inst_zzh;
insert into ind_test.t_inst_zzh(statis_date,brand_code,cnt)  values('20160314 14:05:31','B01',1000);
--建过程
drop procedure ind_test.prc_test(
out ov_msg varchar(500)
)
begin
declare vv_statis_date varchar(20);
--declare vv_brand_code varchar(32);
declare vd_cnt decimal(6,0);
declare vv_sql varchar(200);
declare sqlcode integer;
declare vv_err_msg varchar(500);
declare exit handler for sqlexception begin
  rollback;
  get diagnostics exception 1 vv_err_msg = message_text;
  set ov_msg = substr(sqlcode||','||vv_err_msg,1,200);
 
set vv_statis_date = to_char(current timestamp,'yyyymmdd hh24:mi:ss');
set vd_cnt = 1200;
end;
--1. 动态sql:varchar变量(表示值 含单引号), varchar常量(表示值 含单引号)
set vv_sql = ' insert into ind_test.t_inst_zzh(statis_date,brand_code,cnt)  values('||concat(concat('''',vv_statis_date),'''')||',' ||concat(concat('''',upper('b01')),'''')|| ',vd_cnt) ';
execute immediate vv_sql;
--2. 静态sql:varchar变量(表示值 含单引号), varchar常量(表示值 含单引号)
insert into ind_test.t_inst_zzh(statis_date,brand_code,cnt)  values(vv_statis_date,upper('B02'),2200);
commit;
set ov_msg = 'success';
end;
 
--调用
call ind_test.prc_test(?);
 
 
 
说明:当 schema 和 table 是变量时,只能用 动态sql。
posted on 2017-03-06 21:48  绿Z  阅读(588)  评论(0)    收藏  举报