CREATE PROCEDURE p8()
BEGIN
DECLARE a INT;
DECLARE b INT;
SET a = 5; SET b = 5;
INSERT INTO t VALUES (a);
SELECT s1 * a FROM t WHERE s1 >= b;
END
CREATE PROCEDURE p9()
BEGIN
DECLARE a INT; -- 初始 NULL
DECLARE b INT;
SET a = 5; SET b = 5; -- 必須顯式賦值
...
END
CREATE PROCEDURE p10()
BEGIN
DECLARE a, b INT DEFAULT 5; -- 同類型多變數合併,直接預設
INSERT INTO t VALUES (a);
SELECT s1 * a FROM t WHERE s1 >= b;
END
執行 `CALL p10()` 返回 `s1*a` 結果集(示例中 `s1=5`,結果 `25` 兩行)。
CREATE PROCEDURE p11()
BEGIN
DECLARE x1 CHAR(5) DEFAULT 'outer';
BEGIN
DECLARE x1 CHAR(5) DEFAULT 'inner'; -- 遮蔽外層 x1
SELECT x1; -- 輸出 'inner'
END;
SELECT x1; -- 輸出 'outer'
END
`CALL p11()` 依序返回 `inner`、`outer` 兩個單行結果集,直觀驗證作用域規則。