oceanbase
131 строка · 3.3 Кб
1delimiter |;
2
3# --------------------------------------------------------------------------
4
5CREATE PROCEDURE sp_vars_check_dflt()
6BEGIN
7DECLARE v1 TINYINT DEFAULT 1e200;
8DECLARE v1u TINYINT UNSIGNED DEFAULT 1e200;
9DECLARE v2 TINYINT DEFAULT -1e200;
10DECLARE v2u TINYINT UNSIGNED DEFAULT -1e200;
11DECLARE v3 TINYINT DEFAULT 300;
12DECLARE v3u TINYINT UNSIGNED DEFAULT 300;
13DECLARE v4 TINYINT DEFAULT -300;
14DECLARE v4u TINYINT UNSIGNED DEFAULT -300;
15
16DECLARE v5 TINYINT DEFAULT 10 * 10 * 10;
17DECLARE v5u TINYINT UNSIGNED DEFAULT 10 * 10 * 10;
18DECLARE v6 TINYINT DEFAULT -10 * 10 * 10;
19DECLARE v6u TINYINT UNSIGNED DEFAULT -10 * 10 * 10;
20
21DECLARE v7 TINYINT DEFAULT '10';
22DECLARE v8 TINYINT DEFAULT '10 ';
23DECLARE v9 TINYINT DEFAULT ' 10 ';
24DECLARE v10 TINYINT DEFAULT 'String 10 ';
25DECLARE v11 TINYINT DEFAULT 'String10';
26DECLARE v12 TINYINT DEFAULT '10 String';
27DECLARE v13 TINYINT DEFAULT '10String';
28DECLARE v14 TINYINT DEFAULT concat('10', ' ');
29DECLARE v15 TINYINT DEFAULT concat(' ', '10');
30DECLARE v16 TINYINT DEFAULT concat('Hello, ', 'world');
31
32DECLARE v17 DECIMAL(64, 2) DEFAULT 12;
33DECLARE v18 DECIMAL(64, 2) DEFAULT 12.123;
34DECLARE v19 DECIMAL(64, 2) DEFAULT 11 + 1;
35DECLARE v20 DECIMAL(64, 2) DEFAULT 12 + 0.123;
36
37SELECT v1, v1u, v2, v2u, v3, v3u, v4, v4u;
38SELECT v5, v5u, v6, v6u;
39SELECT v7, v8, v9, v10, v11, v12, v13, v14, v15, v16;
40SELECT v17, v18, v19, v20;
41END|
42
43# --------------------------------------------------------------------------
44
45CREATE PROCEDURE sp_vars_check_assignment()
46BEGIN
47DECLARE i1, i2, i3, i4 TINYINT;
48DECLARE u1, u2, u3, u4 TINYINT UNSIGNED;
49DECLARE d1, d2, d3 DECIMAL(64, 2);
50
51SET i1 = 1e200;
52SET i2 = -1e200;
53SET i3 = 300;
54SET i4 = -300;
55
56SELECT i1, i2, i3, i4;
57
58SET i1 = 10 * 10 * 10;
59SET i2 = -10 * 10 * 10;
60SET i3 = sign(10 * 10) * 10 * 20;
61SET i4 = sign(-10 * 10) * -10 * 20;
62
63SELECT i1, i2, i3, i4;
64
65SET u1 = 1e200;
66SET u2 = -1e200;
67SET u3 = 300;
68SET u4 = -300;
69
70SELECT u1, u2, u3, u4;
71
72SET u1 = 10 * 10 * 10;
73SET u2 = -10 * 10 * 10;
74SET u3 = sign(10 * 10) * 10 * 20;
75SET u4 = sign(-10 * 10) * -10 * 20;
76
77SELECT u1, u2, u3, u4;
78
79SET d1 = 1234;
80SET d2 = 1234.12;
81SET d3 = 1234.1234;
82
83SELECT d1, d2, d3;
84
85SET d1 = 12 * 100 + 34;
86SET d2 = 12 * 100 + 34 + 0.12;
87SET d3 = 12 * 100 + 34 + 0.1234;
88
89SELECT d1, d2, d3;
90END|
91
92# --------------------------------------------------------------------------
93
94CREATE FUNCTION sp_vars_check_ret1() RETURNS TINYINT
95BEGIN
96RETURN 1e200;
97END|
98
99# --------------------------------------------------------------------------
100
101CREATE FUNCTION sp_vars_check_ret2() RETURNS TINYINT
102BEGIN
103RETURN 10 * 10 * 10;
104END|
105
106# --------------------------------------------------------------------------
107
108CREATE FUNCTION sp_vars_check_ret3() RETURNS TINYINT
109BEGIN
110RETURN 'Hello, world';
111END|
112
113# --------------------------------------------------------------------------
114
115CREATE FUNCTION sp_vars_check_ret4() RETURNS DECIMAL(64, 2)
116BEGIN
117RETURN 12 * 10 + 34 + 0.1234;
118END|
119
120# --------------------------------------------------------------------------
121
122CREATE FUNCTION sp_vars_div_zero() RETURNS INTEGER
123BEGIN
124DECLARE div_zero INTEGER;
125SELECT 1/0 INTO div_zero;
126RETURN div_zero;
127END|
128
129# --------------------------------------------------------------------------
130
131delimiter ;|
132