memory_storedproc_03.result
来自「这个文件是windows mysql源码」· RESULT 代码 · 共 497 行 · 第 1/2 页
RESULT
497 行
set count1 = 1;label2: loopif count1 > 4 then leave label2;END if;insert into temp values( count1, count2);set count1 = count1 + 1;iterate label3;END loop label2;set count2 = count2 + 1;iterate label1;END loop label1;END//ERROR 42000: ITERATE with no matching label: label3Testcase 3.1.3.18:------------------Ensure that the REPEAT statement acts correctly for all variants, includingcases where statements are nested.--------------------------------------------------------------------------------DROP PROCEDURE IF EXISTS sp17;DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);CREATE PROCEDURE sp17( )BEGINdeclare count1 integer default 1;declare count2 integer default 1;repeatset count1 = count1 + 1;set count2 = 1;label1: repeatset count2 = count2 + 1;insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);until count2 > 3END repeat label1;until count1 > 3END repeat;END//CALL sp17();SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;f1 f2 f3xyz pqr 2xyz pqr 2xyz pqr 2xyz pqr 3xyz pqr 3xyz pqr 3xyz pqr 4xyz pqr 4xyz pqr 4DROP PROCEDURE sp17;DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;Testcase 3.1.3.24:------------------Ensure that the WHILE statement acts correctly for all variants, including caseswhere statements are nested.--------------------------------------------------------------------------------drop table IF EXISTS res_t21;DROP PROCEDURE IF EXISTS sp21;create table res_t21(name text(10), surname blob(20), age_averylongfieldname_averylongname_1234569 smallint);insert into res_t21 values('ashwin', 'mokadam', 25);CREATE PROCEDURE sp21( )BEGINdeclare count1 integer default 0;declare count2 integer default 0;while count1 < 3 doBEGINdeclare ithisissamevariablename int default 100;SELECT ithisissamevariablename;BEGINdeclare ithisissamevariablename int default 200;SELECT ithisissamevariablename;END;set count2 = 0;label1: while count2 < 3 doBEGINdeclare count1 integer default 7;set count2 = count2 + 1;insert into res_t21 values( 'xyz' , 'pqr', count2);label2: while count1 < 10 doset count1 = count1 + 1;insert into res_t21 values( 'xyz' , 'pqr', count1);END while label2;END;END while label1;set count1 = count1 + 1;END;END while;END//CALL sp21();ithisissamevariablename100ithisissamevariablename200ithisissamevariablename100ithisissamevariablename200ithisissamevariablename100ithisissamevariablename200SELECT * from res_t21;name surname age_averylongfieldname_averylongname_1234569ashwin mokadam 25xyz pqr 1xyz pqr 8xyz pqr 9xyz pqr 10xyz pqr 2xyz pqr 8xyz pqr 9xyz pqr 10xyz pqr 3xyz pqr 8xyz pqr 9xyz pqr 10xyz pqr 1xyz pqr 8xyz pqr 9xyz pqr 10xyz pqr 2xyz pqr 8xyz pqr 9xyz pqr 10xyz pqr 3xyz pqr 8xyz pqr 9xyz pqr 10xyz pqr 1xyz pqr 8xyz pqr 9xyz pqr 10xyz pqr 2xyz pqr 8xyz pqr 9xyz pqr 10xyz pqr 3xyz pqr 8xyz pqr 9xyz pqr 10DROP PROCEDURE sp21;drop table res_t21;Testcase 3.1.3.30:------------------Ensure that multiple cases of all possible combinations of the control flowstatements, nested within multiple compound statements within a storedprocedure, always act correctly and return the expected result.--------------------------------------------------------------------------------DROP TABLE IF EXISTS res_tbl;DROP PROCEDURE IF EXISTS sp31330;create table res_tbl (f1 int, f2 text, f3 blob, f4 date,f5 set('one', 'two', 'three', 'four', 'five') default 'one');CREATE PROCEDURE sp31330 (path int)BEGINdeclare count int default 1;declare var1 text;declare var2 blob;declare var3 date;declare var4 set('one', 'two', 'three', 'four', 'five') DEFAULT 'five';casewhen path=1 thenset var3 = '2000-11-09';set var1 = 'flowing through case 1';label1: loopif count > 5 thenif var4=1000 thenset var2 = 'exiting out of case 1 - invalid SET';END if;if var4='two' thenset var2 = 'exiting out of case 1';END if;insert into res_tbl values (1, var1, var2, var3, (count-2));leave label1;elseif count = 5 thenset count= count + 2;set var4='two';iterate label1;elseset count= count + 1;END if;set var4='one';END loop label1;when path=2 thenset var3 = '1989-11-09';set var1 = 'flowing through case 2';set @count3=0;label2: repeatset count=count + 1;set @count2=1;while @count2 <= 5 doset @count2 = @count2 + 1;END while;SELECT @count2;set @count3=@count3 + @count2;until count > 5END repeat label2;set var2 = 'exiting out of case 2';set var4 = count-3;SELECT @count3;insert into res_tbl values (2, var1, var2, var3, var4);ELSE BEGINset @error_opt='undefined path specified';SELECT @error_opt;END;END case;END//CALL sp31330();ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp31330; expected 1, got 0CALL sp31330(1);SELECT * from res_tbl;f1 f2 f3 f4 f51 flowing through case 1 exiting out of case 1 2000-11-09 one,threeCALL sp31330(2);@count26@count26@count26@count26@count26@count330SELECT * from res_tbl;f1 f2 f3 f4 f51 flowing through case 1 exiting out of case 1 2000-11-09 one,three2 flowing through case 2 exiting out of case 2 1989-11-09 one,twoCALL sp31330(4);@error_optundefined path specifiedDROP PROCEDURE sp31330;drop table res_tbl;--source suite/funcs_1/storedproc/cleanup_sp_tb.inc--------------------------------------------------------------------------------DROP DATABASE IF EXISTS db_storedproc;DROP DATABASE IF EXISTS db_storedproc_1;. +++ END OF SCRIPT +++--------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?