132 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			132 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
| 
								 | 
							
								delimiter |;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE PROCEDURE sp_vars_check_dflt()
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  DECLARE v1 TINYINT DEFAULT 1e200;
							 | 
						||
| 
								 | 
							
								  DECLARE v1u TINYINT UNSIGNED DEFAULT 1e200;
							 | 
						||
| 
								 | 
							
								  DECLARE v2 TINYINT DEFAULT -1e200;
							 | 
						||
| 
								 | 
							
								  DECLARE v2u TINYINT UNSIGNED DEFAULT -1e200;
							 | 
						||
| 
								 | 
							
								  DECLARE v3 TINYINT DEFAULT 300;
							 | 
						||
| 
								 | 
							
								  DECLARE v3u TINYINT UNSIGNED DEFAULT 300;
							 | 
						||
| 
								 | 
							
								  DECLARE v4 TINYINT DEFAULT -300;
							 | 
						||
| 
								 | 
							
								  DECLARE v4u TINYINT UNSIGNED DEFAULT -300;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  DECLARE v5 TINYINT DEFAULT 10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								  DECLARE v5u TINYINT UNSIGNED DEFAULT 10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								  DECLARE v6 TINYINT DEFAULT -10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								  DECLARE v6u TINYINT UNSIGNED DEFAULT -10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  DECLARE v7 TINYINT DEFAULT '10';
							 | 
						||
| 
								 | 
							
								  DECLARE v8 TINYINT DEFAULT '10 ';
							 | 
						||
| 
								 | 
							
								  DECLARE v9 TINYINT DEFAULT ' 10 ';
							 | 
						||
| 
								 | 
							
								  DECLARE v10 TINYINT DEFAULT 'String 10 ';
							 | 
						||
| 
								 | 
							
								  DECLARE v11 TINYINT DEFAULT 'String10';
							 | 
						||
| 
								 | 
							
								  DECLARE v12 TINYINT DEFAULT '10 String';
							 | 
						||
| 
								 | 
							
								  DECLARE v13 TINYINT DEFAULT '10String';
							 | 
						||
| 
								 | 
							
								  DECLARE v14 TINYINT DEFAULT concat('10', ' ');
							 | 
						||
| 
								 | 
							
								  DECLARE v15 TINYINT DEFAULT concat(' ', '10');
							 | 
						||
| 
								 | 
							
								  DECLARE v16 TINYINT DEFAULT concat('Hello, ', 'world');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  DECLARE v17 DECIMAL(64, 2) DEFAULT 12;
							 | 
						||
| 
								 | 
							
								  DECLARE v18 DECIMAL(64, 2) DEFAULT 12.123;
							 | 
						||
| 
								 | 
							
								  DECLARE v19 DECIMAL(64, 2) DEFAULT 11 + 1;
							 | 
						||
| 
								 | 
							
								  DECLARE v20 DECIMAL(64, 2) DEFAULT 12 + 0.123;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SELECT v1, v1u, v2, v2u, v3, v3u, v4, v4u;
							 | 
						||
| 
								 | 
							
								  SELECT v5, v5u, v6, v6u;
							 | 
						||
| 
								 | 
							
								  SELECT v7, v8, v9, v10, v11, v12, v13, v14, v15, v16;
							 | 
						||
| 
								 | 
							
								  SELECT v17, v18, v19, v20;
							 | 
						||
| 
								 | 
							
								END|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE PROCEDURE sp_vars_check_assignment()
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  DECLARE i1, i2, i3, i4 TINYINT;
							 | 
						||
| 
								 | 
							
								  DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
							 | 
						||
| 
								 | 
							
								  DECLARE d1, d2, d3 DECIMAL(64, 2);
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  SET i1 = 1e200;
							 | 
						||
| 
								 | 
							
								  SET i2 = -1e200;
							 | 
						||
| 
								 | 
							
								  SET i3 = 300;
							 | 
						||
| 
								 | 
							
								  SET i4 = -300;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  SELECT i1, i2, i3, i4;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SET i1 = 10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								  SET i2 = -10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								  SET i3 = sign(10 * 10) * 10 * 20;
							 | 
						||
| 
								 | 
							
								  SET i4 = sign(-10 * 10) * -10 * 20;
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  SELECT i1, i2, i3, i4;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SET u1 = 1e200;
							 | 
						||
| 
								 | 
							
								  SET u2 = -1e200;
							 | 
						||
| 
								 | 
							
								  SET u3 = 300;
							 | 
						||
| 
								 | 
							
								  SET u4 = -300;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								  SELECT u1, u2, u3, u4;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SET u1 = 10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								  SET u2 = -10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								  SET u3 = sign(10 * 10) * 10 * 20;
							 | 
						||
| 
								 | 
							
								  SET u4 = sign(-10 * 10) * -10 * 20;
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  SELECT u1, u2, u3, u4;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SET d1 = 1234;
							 | 
						||
| 
								 | 
							
								  SET d2 = 1234.12;
							 | 
						||
| 
								 | 
							
								  SET d3 = 1234.1234;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SELECT d1, d2, d3;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SET d1 = 12 * 100 + 34;
							 | 
						||
| 
								 | 
							
								  SET d2 = 12 * 100 + 34 + 0.12;
							 | 
						||
| 
								 | 
							
								  SET d3 = 12 * 100 + 34 + 0.1234;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  SELECT d1, d2, d3;
							 | 
						||
| 
								 | 
							
								END|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE FUNCTION sp_vars_check_ret1() RETURNS TINYINT
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  RETURN 1e200;
							 | 
						||
| 
								 | 
							
								END|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE FUNCTION sp_vars_check_ret2() RETURNS TINYINT
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  RETURN 10 * 10 * 10;
							 | 
						||
| 
								 | 
							
								END|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE FUNCTION sp_vars_check_ret3() RETURNS TINYINT
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  RETURN 'Hello, world';
							 | 
						||
| 
								 | 
							
								END|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE FUNCTION sp_vars_check_ret4() RETURNS DECIMAL(64, 2)
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  RETURN 12 * 10 + 34 + 0.1234;
							 | 
						||
| 
								 | 
							
								END|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE FUNCTION sp_vars_div_zero() RETURNS INTEGER
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								  DECLARE div_zero INTEGER;
							 | 
						||
| 
								 | 
							
								  SELECT 1/0 INTO div_zero;
							 | 
						||
| 
								 | 
							
								  RETURN div_zero;
							 | 
						||
| 
								 | 
							
								END|
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								delimiter ;|
							 |