DB2存储过程

 1 CREATE PROCEDURE "SH"."ATG" ()
 2 LANGUAGE SQL
 3 MODIFIES SQL DATA
 4 CALLED ON NULL INPUT
 5 BEGIN
 6 declare v_sno varchar(100);
 7 declare v_cno varchar(18);
 8 declare v_cmu varchar(12);
 9 declare v_node int;
10 declare v_count int;
11 declare v_fakeid varchar(30);
12 declare v_count_f int;
13 --declare v_sql varchar(100);
14 select count(certificate_no) into v_count_f from TX_VERIFY_APPLY_INFO 
15     where current_node_code < 4 
16     and current_node_code > 1 ;
17     begin 
18     declare v_cur cursor for select server_no,certificate_no,community,current_node_code
19       from TX_VERIFY_APPLY_INFO 
20       where current_node_code < 4 
21         and current_node_code > 1 ;
22 
23     open v_cur;
24     set v_count = 0;
25     while (v_count_f > 0) do
26     FETCH v_cur into v_sno,v_cno,v_cmu,v_node;
27       --delete 
28       delete from tx_income_gz where certificate_no=v_cno;
29       delete from tx_income_jy where certificate_no=v_cno;
30       delete from tx_income_zy where certificate_no=v_cno;
31       delete from tx_income_cc where certificate_no=v_cno;
32       --set v_sql = ‘delete from tx_income_cc where certificate_no=‘||v_cno;
33       --insert into temp_msg values(v_sql);
34       set v_count=v_count+1;
35       set v_fakeid = RTRIM(S20150310FAKE||CHAR(v_count));
36       if (v_node = 2) then
37           --jd
38             --1
39           INSERT INTO tx_income_jy (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B120001,D204B120002,D204B120003,D204B120004,D204B120005,D204B120006,D204B120007,D204B120008,D204B120009,D204B120010,D204B120011,D204B120012,D204B120013,D204B120014,D204B120015,D204B120016,D204B120017,D204B120018,D204B120019,D204B120020,CURRENT_NODE_CODE,LOCK_FLAG) 
40           VALUES (v_fakeid||1,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,‘‘,‘‘,‘‘,‘‘,‘‘,0.00,0.00,‘‘,‘‘,‘‘,‘‘,null,null,null,null,‘‘,‘‘,0.00,1,1);
41           INSERT INTO tx_income_zy (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B140001,D204B140002,D204B140003,D204B140004,D204B140005,D204B140006,D204B140007,D204B140008,D204B140009,D204B140010,D204B140011,D204B140012,D204B140013,D204B140014,D204B140015,D204B140016,D204B140017,D204B140018,D204B140019,D204B140020,D204B140021,D204B140022,D204B140023,CURRENT_NODE_CODE,LOCK_FLAG) 
42           VALUES (v_fakeid||2,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1,1);
43           INSERT INTO tx_income_cc (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B130001,D204B130002,D204B130003,D204B130004,D204B130005,D204B130006,D204B130007,D204B130008,CURRENT_NODE_CODE,LOCK_FLAG) 
44           VALUES (v_fakeid||3,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1,1);
45           INSERT INTO tx_income_gz (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B110001,D204B110002,D204B110003,D204B110004,D204B110005,D204B110006,D204B110007,D204B110008,D204B110009,CURRENT_NODE_CODE,LOCK_FLAG) 
46           VALUES (v_fakeid||4,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1,1);
47       else 
48         if (v_node = 3) then
49           --qx
50             --1
51           INSERT INTO tx_income_jy (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B120001,D204B120002,D204B120003,D204B120004,D204B120005,D204B120006,D204B120007,D204B120008,D204B120009,D204B120010,D204B120011,D204B120012,D204B120013,D204B120014,D204B120015,D204B120016,D204B120017,D204B120018,D204B120019,D204B120020,CURRENT_NODE_CODE,LOCK_FLAG) 
52           VALUES (v_fakeid||1,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,‘‘,‘‘,‘‘,‘‘,‘‘,0.00,0.00,‘‘,‘‘,‘‘,‘‘,null,null,null,null,‘‘,‘‘,0.00,1,1);
53           INSERT INTO tx_income_zy (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B140001,D204B140002,D204B140003,D204B140004,D204B140005,D204B140006,D204B140007,D204B140008,D204B140009,D204B140010,D204B140011,D204B140012,D204B140013,D204B140014,D204B140015,D204B140016,D204B140017,D204B140018,D204B140019,D204B140020,D204B140021,D204B140022,D204B140023,CURRENT_NODE_CODE,LOCK_FLAG) 
54           VALUES (v_fakeid||2,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1,1);
55           INSERT INTO tx_income_cc (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B130001,D204B130002,D204B130003,D204B130004,D204B130005,D204B130006,D204B130007,D204B130008,CURRENT_NODE_CODE,LOCK_FLAG) 
56           VALUES (v_fakeid||3,v_sno,ccsy,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1,1);
57           INSERT INTO tx_income_gz (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B110001,D204B110002,D204B110003,D204B110004,D204B110005,D204B110006,D204B110007,D204B110008,D204B110009,CURRENT_NODE_CODE,LOCK_FLAG) 
58           VALUES (v_fakeid||4,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1,1);
59             --2
60           INSERT INTO tx_income_jy (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B120001,D204B120002,D204B120003,D204B120004,D204B120005,D204B120006,D204B120007,D204B120008,D204B120009,D204B120010,D204B120011,D204B120012,D204B120013,D204B120014,D204B120015,D204B120016,D204B120017,D204B120018,D204B120019,D204B120020,CURRENT_NODE_CODE,LOCK_FLAG) 
61           VALUES (v_fakeid||5,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,‘‘,‘‘,‘‘,‘‘,‘‘,0.00,0.00,‘‘,‘‘,‘‘,‘‘,null,null,null,null,‘‘,‘‘,0.00,2,1);
62           INSERT INTO tx_income_zy (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B140001,D204B140002,D204B140003,D204B140004,D204B140005,D204B140006,D204B140007,D204B140008,D204B140009,D204B140010,D204B140011,D204B140012,D204B140013,D204B140014,D204B140015,D204B140016,D204B140017,D204B140018,D204B140019,D204B140020,D204B140021,D204B140022,D204B140023,CURRENT_NODE_CODE,LOCK_FLAG) 
63           VALUES (v_fakeid||6,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,2,1);
64           INSERT INTO tx_income_cc (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B130001,D204B130002,D204B130003,D204B130004,D204B130005,D204B130006,D204B130007,D204B130008,CURRENT_NODE_CODE,LOCK_FLAG) 
65           VALUES (v_fakeid||7,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,2,1);
66           INSERT INTO tx_income_gz (LSH,SERVER_NO,SERVICE_TYPE,CERTIFICATE_NO,PERSON_ID,DOOR_ID,COMMUNITY,D204B110001,D204B110002,D204B110003,D204B110004,D204B110005,D204B110006,D204B110007,D204B110008,D204B110009,CURRENT_NODE_CODE,LOCK_FLAG) 
67           VALUES (v_fakeid||8,v_sno,ccsyw,v_cno,null,null,v_cmu,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,2,1);
68         end if;
69       end if;
70       set v_count_f = v_count_f - 1;
71     end while;
72     close v_cur;
73     end;
74 END
75 @

以上是一个简易存储过程,包含 while循环 、delete 、insert、游标操作。CALLED ON NULL INPUT 不知道是不是要加,也不确切的知道有什么用。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。