时间: 2021-08-13 作者:daque
1.10 提防字段空值的处置 select deptno ,deptname ,coalesce(mgrno ,'absent'),admrdept from department coalesce因变量归来()中表白式列表中第一个不为空的表白式,不妨带多个表白式。 和oracle的isnull一致,但isnull好象只能两个表白式。 1.11 博得处置的记载数 declare v_count int; update tb_test set t1=’0’ where t2=’2’; --查看窜改的行数,确定指定的记载能否生存 get diagnostics v_ count=row_count; 只对update,insert,delete起效率. 不对select into 灵验 1.12 从保存进程归来截止集(游标)的用法 1、建一sp归来截止集 create procedure db2inst1.proc1 ( ) language sql result sets 2(归来两个截止集) ------------------------------------------------------------------------ -- sql 保存进程 ------------------------------------------------------------------------ p1: begin declare c1 cursor with return to caller for select market_code from tb_market_code; --指定该截止集用来归来给挪用者 declare c2 cursor with return to caller for select market_code from tb_market_code; open c1; open c2; end p1 2、建一sp调该sp且运用它的截止集 create procedure db2inst1.proc2 ( out out_market_code char(1)) language sql ------------------------------------------------------------------------ -- sql 保存进程 ------------------------------------------------------------------------ p1: begin declare loc1,loc2 result_set_locator varying; --创造一个截止集数组 call proc1; --挪用该sp归来截止集。 associate result set locator(loc1,loc2) with procedure proc1; --将归来截止集和截止集数组关系 allocate cursor1 cursor for result set loc1; allocate cursor2 cursor for result set loc2; --将截止集数组调配给cursor fetch cursor1 into out_market_code; --径直从截止会合赋值 close cursor1; end p1 3、动静sql写法 declare cursor c1 for stmt1; prepare stmt1 from 'allocate c2 cursor for result set ?'; 4、提防: 一、 即使一个sp挪用好几次,只能取到迩来一次挪用的截止集。 二、 allocate的cursor不许再次open,但不妨close,是close sp中的对应cursor。 1.13 典型变换因变量 select cast ( current time as char(8)) from tb_market_code 1.14 保存进程的彼此挪用 暂时,c sp不妨彼此挪用。 sql sp 不妨彼此挪用, sql sp 不妨挪用c sp, 但c sp 不不妨挪用sql sp(最新的讲法是不妨) 1.15 c保存进程参数提防 create procedure pr_clear_task_ctrl( in in_branch_code char(4), in in_tradedate char(8), in in_task_id char(2), in in_sub_task_id char(4), out out_success_flag integer ) dynamic result sets 0 language c parameter style general with nulls(即使不是如许,sql 的sp将不许挪用该用c写的保存进程,爆发养护性缺点) no dbinfo fenced modifies sql data external name 'pr_clear_task_ctrl!pr_clear_task_ctrl'@