Details
Description
SET sql_mode=ORACLE; |
DROP PACKAGE pkg; |
DELIMITER /
|
CREATE PACKAGE pkg AS |
FUNCTION f1 RETURN INT; |
END; |
/
|
CREATE PACKAGE BODY pkg AS |
vc INT := 0; |
FUNCTION f1 RETURN INT AS |
CURSOR cur IS SELECT 1 AS c FROM DUAL; |
BEGIN |
OPEN cur; |
FETCH cur INTO vc; -- error happens here |
CLOSE cur; |
RETURN vc; |
END; |
END; |
/
|
DELIMITER ;
|
SELECT pkg.f1() FROM DUAL; |
ERROR 1327 (42000): Undeclared variable: vc
|
Looks wrong.
If I run the same script in Oracle, it works fine and returns 1 as expected.
DROP PACKAGE pkg; |
CREATE PACKAGE pkg AS |
FUNCTION f1 RETURN INT; |
END; |
/
|
CREATE PACKAGE BODY pkg AS |
vc INT := 0; |
FUNCTION f1 RETURN INT AS |
CURSOR cur IS SELECT 1 AS c FROM DUAL; |
BEGIN |
OPEN cur; |
FETCH cur INTO vc; |
CLOSE cur; |
RETURN vc; |
END; |
END; |
/
|
SELECT pkg.f1() FROM DUAL; |
+----------+
|
| PKG.F1() |
|
+----------+
|
| 1 |
|
+----------+
|
Attachments
Issue Links
- blocks
-
MDEV-20034 Add support for the pre-defined weak SYS_REFCURSOR
-
- In Testing
-
- relates to
-
MDEV-10152 Add support for TYPE .. IS REF CURSOR
-
- Open
-
-
MDEV-36053 Syntax error on a CURSOR..IS declaration in PACKAGE BODY
-
- Open
-