CREATE FUNCTION get_ai_id_by_key(key_id_var INT, domain_id_var INT)
RETURNS CURSOR
BEGIN
DECLARE curs CURSOR FOR SELECT key_id FROM prc_ai_define WHERE (to_number(substr(key_id, 1, 10)) = key_id_var) and (domain_id=domain_id_var);
RETURN curs;
END;
上面这个编译不能通过
RETURNS CURSOR
BEGIN
DECLARE curs CURSOR FOR SELECT key_id FROM prc_ai_define WHERE (to_number(substr(key_id, 1, 10)) = key_id_var) and (domain_id=domain_id_var);
RETURN curs;
END;
上面这个编译不能通过
估计你的是没有设置 delimiter ,MySQL默认的是;,所以当你输入;时就提交了。mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
-> RETURN CONCAT('Hello, ',s,'!');
Query OK, 0 rows affected (0.00 sec)mysql> SELECT hello('world');
+----------------+
| hello('world') |
+----------------+
| Hello, world! |
+----------------+
1 row in set (0.00 sec)你的估计改成下面的再试试mysql> delimiter //mysql> CREATE FUNCTION get_ai_id_by_key(key_id_var INT, domain_id_var INT)
-> RETURNS CURSOR
-> BEGIN
-> DECLARE curs CURSOR FOR SELECT key_id FROM prc_ai_define WHERE (to_number(substr(key_id, 1, 10)) = key_id_var) and (domain_id=domain_id_var);
-> RETURN curs;
-> END;
-> //
Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;