数据库Function&Procedure&Package

Posted yuelien

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库Function&Procedure&Package相关的知识,希望对你有一定的参考价值。

Function/Procedure都是可独立编译并存储在数据库中的,区别是Function有返回值。

Package则是数据和过程、函数的集合体。

CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
  SET @x = 0;
  REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
END;

 

mysql> delimiter //

mysql> CREATE PROCEDURE dorepeat(p1 INT)
    -> BEGIN
    ->   SET @x = 0;
    ->   REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;

mysql> CALL dorepeat(1000);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @x;
+------+
| @x   |
+------+
| 1001 |
+------+
1 row in set (0.00 sec)

 

mysql> CREATE FUNCTION hello (s CHAR(20))
mysql> RETURNS CHAR(50) DETERMINISTIC
    -> 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)

  

以上是关于数据库Function&Procedure&Package的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:procedure, function, cursor,handler

Oracle中function和procedure的区别

重用 PROCEDURE/FUNCTION 使用不同的值来做同样的事情

delphi如何在一个function自定义函数中调用procedure中的私有变量?

查询某个表所涉及的 存储过程Procedure, 视图view , 方法Function

MySQL 5.7 create VIEW or FUNCTION or PROCEDURE