精华内容
下载资源
问答
  • 上一节我们说了这个存储过程,这一节我们说一下这个存储函数,看清楚了啊,是函数!!! 存储函数 我们先来认识一下存储函数 很好啊,百科也不行了,我来说吧 这个存储函数和这个存储过程很类似,有那些类似的...

    上一节我们说了这个存储过程,这一节我们说一下这个存储函数,看清楚了啊,是函数!!!

    存储函数

    我们先来认识一下存储函数

    很好啊,百科也不行了,我来说吧

    这个存储函数和这个存储过程很类似,有那些类似的地方呢?不要急,下文我会去介绍这俩的区别的。

    存储函数,说白了就是一个函数,好比我们Java中的一个类中的方法,有传入参数,有输出参数等等。

    大概知道一下存储函数,我们接下来说说如何去使用。

    存储函数的创建

    存储过程的创建也和这个存储过程类似,但是用的关键字不一样,存储过程用的是 PROCEDURE ,存储函数是用的 FUNCTION,然后我给出创建存储函数的命令

    CREATE FUNCTION 存储函数的名字(参数1, 参数2...)
        RETURNS 数据类型
        特性
        执行的SQL...
        执行的SQL...
        RETURN xxx
    

    嗯,就这么多,我们可以看到啊,这里多了一个这个 RETURNS 这么个关键词,这个是指返回值类型

    再来说这个特性,这个特性和这个存储过程的特性一样哦,不知道的可以看我存储过程:胖子胖子大胖子_存储过程

    除去这个RETURNS ,传入的参数也结构不一样了,没有存储过程的那个 IN、OUT、INOUT了,因为我们已经有RETURNS了,所以不需要这些东西了。

    知道了创建的方法,我们来使用一下

    是不是,一个很简单的存储函数就写好了,然后我们再来说说如何调用

    存储函数的调用

    这个存储函数的调用就和我们的存储过程的调用就不一样了,存储过程调用,我们使用的是关键字 CALL,而我们存储函数的调用是使用的 SELECT,然后后面跟上这个存储函数的名字,具体方法如下

    SELECT 存储函数的名字(参数1, 参数2...);

    很好啊,知道了以后,我们来调用一下这个存储函数

    是不是很OK,同样也可以使用别名哦~

    存储函数的删除

    删除的话是真的和这个存储过程差不多,命令如下

    DROP FUNCTION 存储函数的名字

    就是把 PROCEDURE 换成了 FUNCTION 而已,我们使用一下

     

    存储过程和存储函数的区别

    最后我们来说说区别,算了,这个扔到下一讲。

     

    大家好好练习一下,有问题可以直接加我QQ : 2100363119

     

    展开全文
  • MySQL删除存储过程和函数

    万次阅读 2015-06-24 13:39:29
    使用DROP FUNCTION语句来删除存储函数。 基本的语法格式如下: DROP {PROCEDURE|FUNCTION} sp_name; 其中,sp_name参数表示存储过程或函数的名称。 1. 删除存储过程test。SQL代码如下: drop ...

      MySQL中使用DROP PROCEDURE语句来删除存储过程;使用DROP FUNCTION语句来删除存储函数。

    基本的语法格式如下:

    DROP {PROCEDURE|FUNCTION} sp_name;

    其中,sp_name参数表示存储过程或函数的名称。

    1. 删除存储过程test。SQL代码如下:

    drop procedure if exists test;
      查询information_schema数据库下的Routines表,以确认上面的删除是否成功。

    select * from information_schema.routines where routine_name='test';
      SELECT语句的执行结果如下:

    注:

    如果存储过程或存储函数不存在时,仍然进行删除,可以使用IF EXISTS子句,它可以防止发生错误,产生一个用SHOW WARNINGS查看的警告。


    展开全文
  • MySQL存储函数

    千次阅读 2019-01-11 17:38:43
    MySQL存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。 1、创建存储函数 在MySQL中,创建存储函数使用CREATE FUNCTION关键字,其基本形式如下: CREATE ...

    MySQL存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算或功能写成一个函数。

    1、创建存储函数

    在MySQL中,创建存储函数使用CREATE FUNCTION关键字,其基本形式如下:

    CREATE FUNCTION func_name ([param_name type[,...]])
    RETURNS type
    [characteristic ...] 
    BEGIN
    	routine_body
    END;

    参数说明:

    (1)func_name :存储函数的名称。

    (2)param_name type:可选项,指定存储函数的参数。type参数用于指定存储函数的参数类型,该类型可以是MySQL数据库中所有支持的类型。

    (3)RETURNS type:指定返回值的类型。

    (4)characteristic:可选项,指定存储函数的特性。

    (5)routine_body:SQL代码内容。

    2、调用存储函数

    在MySQL中,存储函数的使用方法与MySQL内部函数的使用方法基本相同。用户自定义的存储函数与MySQL内部函数性质相同。区别在于,存储函数是用户自定义的。而内部函数由MySQL自带。其语法结构如下:

    SELECT func_name([parameter[,…]]);

    示例:创建存储函数,实现根据用户编号,获取用户姓名功能。

    (1)先创建tb_user(用户信息表),并添加数据。

    -- 创建用户信息表
    CREATE TABLE IF NOT EXISTS tb_user
    (
    	id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号',
    	name VARCHAR(50) NOT NULL COMMENT '用户姓名'
    ) COMMENT = '用户信息表';
    
    -- 添加数据
    INSERT INTO tb_user(name) VALUES('pan_junbiao的博客');
    INSERT INTO tb_user(name) VALUES('KevinPan');
    INSERT INTO tb_user(name) VALUES('pan_junbiao');
    INSERT INTO tb_user(name) VALUES('阿标');
    INSERT INTO tb_user(name) VALUES('panjunbiao');
    INSERT INTO tb_user(name) VALUES('pan_junbiao的CSDN博客');
    INSERT INTO tb_user(name) VALUES('https://blog.csdn.net/pan_junbiao');

    查询数据结果:

    (2)创建存储函数

    -- 创建存储函数
    DROP FUNCTION IF EXISTS func_user;
    CREATE FUNCTION func_user(in_id INT)
    RETURNS VARCHAR(50)
    BEGIN
    	DECLARE out_name VARCHAR(50);
    
    	SELECT name INTO out_name FROM tb_user
    	WHERE id = in_id;
    
    	RETURN out_name;
    END;

    (3)调用存储函数

    -- 调用存储函数
    SELECT func_user(1);
    SELECT func_user(2);
    SELECT func_user(3);
    SELECT func_user(4);
    SELECT func_user(5);
    SELECT func_user(6);
    SELECT func_user(7);

    执行结果:

    3、修改存储函数

    MySQL中,通过ALTER FUNCTION 语句来修改存储函数,其语法格式如下:

    ALTER FUNCTION func_name [characteristic ...]
    characteristic:
        COMMENT 'string'
      | LANGUAGE SQL
      | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
      | SQL SECURITY { DEFINER | INVOKER }

    上面这个语法结构是MySQL官方给出的,修改的内容可以包含SQL语句也可以不包含,既可以是读数据的SQL也可以是修改数据的SQL还有权限。此外在修改function的时候还需要注意你不能使用这个语句来修改函数的参数以及函数体,如果你想改变这些的话你就需要删除掉这个函数然后重新创建。

    4、删除存储函数

    MySQL中使用DROP FUNCTION语句来删除存储函数。

    示例:删除存储函数。

    DROP FUNCTION IF EXISTS func_user;

     

    其它补充:

    如果你在创建存储函数时提示以下错误:

    [Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is
    enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

    这是我们开启了bin-log, 我们就必须指定我们的函数是否是
    1 DETERMINISTIC 不确定的
    2 NO SQL 没有SQl语句,当然也不会修改数据
    3 READS SQL DATA 只是读取数据,当然也不会修改数据
    4 MODIFIES SQL DATA 要修改数据
    5 CONTAINS SQL 包含了SQL语句

    其中在function里面,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。如果我们开启了 bin-log, 我们就必须为我们的function指定一个参数。

    解决方法:

    解决办法也有两种, 第一种是在创建子程序(存储过程、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个, 例如: CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`()     DETERMINISTIC BEGIN #Routine body goes here... END;;

    第二种是信任子程序的创建者,禁止创建、修改子程序时对SUPER权限的要求,设置log_bin_trust_routine_creators全局系统变量为1。

    设置方法有三种:

    (1)在客户端上执行 SET GLOBAL log_bin_trust_function_creators = 1。

    (2)MySQL启动时,加上--log-bin-trust-function-creators选贤,参数设置为1。

    (3)在MySQL配置文件my.ini或my.cnf中的[mysqld]段上加log-bin-trust-function-creators=1。

    展开全文
  • mysql手册05_存储过程和存储函数

    万次阅读 2020-08-14 21:34:41
    mysql手册05_存储过程和存储函数 存储过程和存储函数是存储在数据库中的一段SQL语句集合。 通过调用存储过程或存储函数,可以简化开发,减少数据在数据库和服务器间的传输。 存储过程和存储函数的区别是:存储过程...

    mysql手册05_存储过程和存储函数


    存储过程和存储函数是存储在数据库中的一段SQL语句集合
    通过调用存储过程或存储函数,可以简化开发,减少数据在数据库和服务器间的传输。
    存储过程和存储函数的区别是:存储函数有返回值

    基本语句:

    注:在创建存储过程时,为了避免冲突,需要临时修改语句结束符号:
    delimiter $
    
    创建存储过程:
    delimiter $
    
    create procedure pro_test1() 
    begin 
    select 'Hello MySQL'; 
    end$
    
    delimiter ;
    
    调用存储过程:
    call pro_test1();
    
    +-------------+
    | Hello MySQL |
    +-------------+
    | Hello MySQL |
    +-------------+
    
    查看存储过程的两种方法:
    select name from mysql.proc where db = "demo01"$
    show procedure status\G;
    
    查看存储过程的定义/封装语句:
    show procedure pro_test1\G;
    
    删除存储过程:
    drop procedure pro_test1;
    

    变量:

    declare定义变量和set设置变量值:
    
    create procedure pro_test1() 
    begin 
    declare num int default 10;
    set num = num+10;
    select concat('num的值为:',num);
    end$
    
    调用存储过程:
    call pro_test1();
    +-------------------------------+
    | concat('num的值为:',num)     |
    +-------------------------------+
    | num的值为:20                 |
    +-------------------------------+
    
    select..into..将查询结果赋值给变量:
    
    create procedure pro_test2() 
    begin 
    declare num int;
    select count(*) into num from city;
    select concat('city表中的记录数为:',num);
    end$
    
    call pro_test2();
    +--------------------------------------------+
    | concat('city表中的记录数为:',num)         |
    +--------------------------------------------+
    | city表中的记录数为:4                      |
    +--------------------------------------------+
    

    if条件判断:

    create procedure pro_test3()
    begin 
    declare height int default 175;
    declare description varchar(50) default '';
    if height >=180 then
    	set description='高个子';
    elseif height >=170 and height<180 then
    	set description='中等个子';
    else
    	set description='小个子';
    end if;
    select concat('身高:', height,'对应的类型为:',description);
    end$
    
    call pro_test3();
    +-----------------------------------------------------------------+
    | concat('身高:', height,'对应的类型为:',description)           |
    +-----------------------------------------------------------------+
    | 身高:175对应的类型为:中等个子                                 |
    +-----------------------------------------------------------------+
    

    输入参数:
    根据传递的身高变量,判定身高类型

    create procedure pro_test4(in height int)
    begin 
    declare description varchar(50) default '';
    if height >=180 then
    	set description='高个子';
    elseif height >=170 and height<180 then
    	set description='中等个子';
    else
    	set description='小个子';
    end if;
    select concat('身高:', height,'对应的类型为:',description);
    end$
    
    call pro_test4(198);
    +-----------------------------------------------------------------+
    | concat('身高:', height,'对应的类型为:',description)           |
    +-----------------------------------------------------------------+
    | 身高:198对应的类型为:高个子                                   |
    +-----------------------------------------------------------------+
    
    call pro_test4(178);
    +-----------------------------------------------------------------+
    | concat('身高:', height,'对应的类型为:',description)           |
    +-----------------------------------------------------------------+
    | 身高:178对应的类型为:中等个子                                 |
    +-----------------------------------------------------------------+
    
    call pro_test4(155);
    +-----------------------------------------------------------------+
    | concat('身高:', height,'对应的类型为:',description)           |
    +-----------------------------------------------------------------+
    | 身高:155对应的类型为:小个子                                   |
    +-----------------------------------------------------------------+
    

    输出参数:
    根据传入的身高变量,获取身高类型并返回

    create procedure pro_test5(in height int, out description varchar(10))
    begin 
    if height >=180 then
    	set description='高个子';
    elseif height >=170 and height<180 then
    	set description='中等个子';
    else
    	set description='小个子';
    end if;
    end$
    
    call pro_test5(188,@description);
    select @description;
    +--------------+
    | @description |
    +--------------+
    | 高个子       |
    +--------------+
    注:@a表示用户会话变量,连接关闭时将释放。@@a表示系统变量。
    

    case结构:
    给定月份,计算所在季度

    create procedure pro_test6(mon int)
    begin
    declare result varchar(10);
    case
    when mon>=1 and mon<=3 then
    set result='第一季度';
    when mon>=4 and mon<=6 then
    set result='第二季度';
    when mon>=7 and mon<=9 then
    set result='第三季度';
    else
    set result='第四季度';
    end case;
    select concat('传递的月份为:', mon ,',计算出的结果为:', result) as content;
    end$
    
    call pro_test6(9);
    +---------------------------------------------------------------+
    | content                                                       |
    +---------------------------------------------------------------+
    | 传递的月份为:9,计算出的结果为:第三季度                     |
    +---------------------------------------------------------------+
    

    while循环:
    计算从1加到n

    create procedure pro_test7(n int)
    begin
    	declare total int default 0;
    	declare num int default 1;
    	while num <= n do
    		set total = total + num;
    		set num = num +1;
    	end while; 
    	select total;
    end$
    
    call pro_test7(10);
    +-------+
    | total |
    +-------+
    |    55 |
    +-------+
    

    repeat循环:
    计算从1加到n
    注意until语句后面没有分号!

    create procedure pro_test8(n int)
    begin
    	declare total int default 0;
    	repeat
    		set total = total + n;
    		set n = n-1;
    		until n=0
    	end repeat;
    	select total;
    end$
    
    call pro_test7(10);
    +-------+
    | total |
    +-------+
    |    55 |
    +-------+
    

    loop循环,leave退出:
    计算从1加到n

    create procedure pro_test9(n int)
    begin
    	declare total int default 0;
    	c:loop
    	set total=total+n;
    	set n = n-1;
    	if n<=0 then
    		leave c;
    	end if; 
    	end loop c;
    	select total;
    end$
    
    call pro_test9(10);
    +-------+
    | total |
    +-------+
    |    55 |
    +-------+
    

    游标:用来存储查询结果集:
    一次fetch读取一行数据
    若fetch次数超过数据行数,将报错

    准备工作:
    create table emp(
    	id int(11) not null auto_increment,
    	name varchar(50) not null comment '姓名',
    	age int(11) comment '年龄',
    	salary int(11) comment '薪水',
    	primary key(id)
    )engine=innodb default charset=utf8;
    
    insert into emp(id,name,age,salary) values(null,'金毛狮王',55,3800),(null,'白眉鹰王',60,4000),(null,'青翼蝠王',38,2800),(null,'紫衫龙王',42,1800);
    
    查询emp表的数据并逐行获取进行展示:
    create procedure pro_test10()
    begin
    	declare e_id int(11);
    	declare e_name varchar(50);
    	declare e_age int(11);
    	declare e_salary int(11);
    	declare emp_result cursor for select * from emp;
    	
    	open emp_result;
    	
    	fetch emp_result into e_id,e_name,e_age,e_salary;
    	select concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary);
    	
    	fetch emp_result into e_id,e_name,e_age,e_salary;
    	select concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary);
    	
    	close emp_result;
    end$
    
    call pro_test10();
    +-------------------------------------------------------------------------+
    | concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary) |
    +-------------------------------------------------------------------------+
    | id=1, name=金毛狮王, age=55, salary=3800                                |
    +-------------------------------------------------------------------------+
    1 row in set (0.05 sec)
    
    +-------------------------------------------------------------------------+
    | concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary) |
    +-------------------------------------------------------------------------+
    | id=2, name=白眉鹰王, age=60, salary=4000                                |
    +-------------------------------------------------------------------------+
    1 row in set (0.05 sec)
    

    循环获取游标数据:
    注:退出条件的声明必须紧跟在游标声明之后!

    查询emp表的数据并逐行获取进行展示:
    create procedure pro_test11()
    begin
    	declare e_id int(11);
    	declare e_name varchar(50);
    	declare e_age int(11);
    	declare e_salary int(11);
    	declare has_data int default 1;
    	
    	declare emp_result cursor for select * from emp;
    	declare exit handler for not found set has_data=0;
    	
    	open emp_result;
    	
    	repeat
    		fetch emp_result into e_id,e_name,e_age,e_salary;
    		select concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary);
    		until has_data=0
    	end repeat;
    	
    	close emp_result;
    end$
    
    call pro_test11();
    +-------------------------------------------------------------------------+
    | concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary) |
    +-------------------------------------------------------------------------+
    | id=1, name=金毛狮王, age=55, salary=3800                                |
    +-------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    +-------------------------------------------------------------------------+
    | concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary) |
    +-------------------------------------------------------------------------+
    | id=2, name=白眉鹰王, age=60, salary=4000                                |
    +-------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    +-------------------------------------------------------------------------+
    | concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary) |
    +-------------------------------------------------------------------------+
    | id=3, name=青翼蝠王, age=38, salary=2800                                |
    +-------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    +-------------------------------------------------------------------------+
    | concat('id=',e_id,', name=',e_name,', age=',e_age,', salary=',e_salary) |
    +-------------------------------------------------------------------------+
    | id=4, name=紫衫龙王, age=42, salary=1800                                |
    +-------------------------------------------------------------------------+
    1 row in set (0.01 sec)
    

    存储函数:

    定义一个存储函数,获取满足条件的总记录数:
    create function fun1(countryId int)
    returns int
    begin
    	declare cnum int;
    	select count(*) into cnum from city where country_id = countryId;
    	return cnum;
    end$
    
    调用存储函数:
    select fun1(1);
    +------+
    | $    |
    +------+
    |    3 |
    +------+
    
    删除存储函数:
    drop function fun1;
    
    注:若创建存储函数报错:
    This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
    使用以下命令解决:
    set global log_bin_trust_function_creators=1$
    
    展开全文
  • MySQL修改、删除存储过程和函数

    千次阅读 2019-09-02 16:49:04
    一、修改 ...其中,sp_name参数表示存储过程或函数的名称,characteristic参数指定存储函数的特性,可能取的取值有: contains SQL 表示子程序包含SQL语句,但不包含读写数据的语句。 no SQL 表示子...
  • Oracle数据库存储过程和存储函数

    千次阅读 多人点赞 2013-04-13 22:22:04
    存储过程和存储函数    指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。 存储过程没有返回值。存储函数有返回值    创建存储过程  用CREATE PROCEDURE命令建立存储过程和存储函数。 ...
  • mysql存储过程和存储函数练习题

    千次阅读 2020-05-28 09:12:28
    课 序 授课日期 授课班次 授课教师 批准人 5 ...4. 掌握使用SQL语句DROP PROCEDURE删除存储过程的方法。 5. 掌握使用CREATE FUNCTION创建存储函数的方法。 6. 掌握使用SQL语句ALTER FUNCTION修
  • 删除PROCEDURE/FUNCTION的权限问题在Oracle11g中,删除存储过程或者函数的权限是同一权限,都是DROP ANY PROCEDURE/DROP PROCEDURE。 当使用DROP PROCEDURE权限时,无需系统管理员授予,若系统管理员使用如下语句会...
  • MySQL入门之存储过程与存储函数

    千次阅读 2017-07-22 00:03:25
    MySQL入门之存储过程与存储函数
  • mysql 存储函数

    千次阅读 2018-06-13 23:41:17
    #定义函数 delimiter $$ create function getGameName(gameid int) returns VARCHAR(45) DETERMINISTIC begin declare name VARCHAR(45); set name=(select gamename from cy_game where id=gameid); return (n.....
  • 创建存储函数

    万次阅读 2018-05-22 09:43:41
    删除存储函数: mysql> drop function fun2_bok; Query OK, 0 rows affected (0.00 sec) mysql> show function status; Empty set (0.00 sec) mysql> 上面只是简单的例子,供大家学习参考。    ...
  • oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL...
  • MySQL——修改、删除存储过程和函数

    万次阅读 2018-05-22 23:30:01
    1. 修改存储过程和函数 使用 ALTER 语句可以修改存储过程或函数的特性,语法格式如下: ALTER { PROCEDURE | FUNCTION } sp_name [ ...characteristic 参数指定存储函数的特性,可能的取值有: ...
  • 当一个大型系统在建立时,会发现,很多的SQL操作是有重叠的,个别计算是相同的,比如:业务系统中,计算一张工单的计算方式。当遇到这些情况时,我们运用存储过程就是...(3)存储函数概述;(4)存储函数使用、优化。
  • 存储过程 1:概述: 存储过程是被命名的 PL/SQL 块,存储于数据库中,是数据库对象的一种。 应用程序可以调用存储过程,执行相应的逻辑。 2:存储过程与存储函数区别 ...存储过程与存储函数都可以封装...2、 存储函数
  • 开始之前 首先创建如下两张表,并初始化一些数据。 创建存储过程(CREATE PROCEDURE) ...基本语法格式如下: ...CREATE PROCEDURE sp_name (parameters) ...sp_name为存储过程的名称(唯一性,没有所谓的重...
  • 注意:关于示例所讲到的存储过程和函数及数据库表的创建,可通过查看之前的文章有进行介绍。...存储过程和存储函数创建以后,用户可以查看存储过程和存储函数的状态和定义。用户可以通过SHOW STATUS语句查看...
  • 存储过程、存储函数和触发器基本使用

    万次阅读 多人点赞 2018-07-31 23:38:23
    当前数据库中有一张acount表,如下: 一、存储过程的创建: (1)语法:mysql&gt; CREATE PROCEDURE 创建的存储过程名字(OUT|IN|INOUT 参数名 数据类型,...,.....删除:drop procedure 要删除存储过程的...
  • MySQL心得7-2-存储函数、触发器

    千次阅读 2012-06-13 09:04:11
    (1)存储函数不能拥有输出参数,因为存储函数本身就是输出参数; (2)不能用CALL语句来调用存储函数; (3)存储函数必须包含一条RETURN语句,而这条特殊的SQL语句不允许包含于存储过程中。 2.创建存储函数使用
  • MySQL存储过程和存储函数(看不懂你打我系列)

    千次阅读 多人点赞 2020-05-24 08:20:25
    MySQL存储过程和存储函数 MySQL中提供存储过程与存储函数机制,我们先将其统称为存储程序,一般的SQL语句需要先编译然后执行,存储程序是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,当用户通过指定...
  • db2 在删除存储过程、函数出错,数据库报SQLSTATE=42725错误,原因是在同一模式中创建了多个参数个数或类型不一样的同名存储过程或函数,但在删除时数据库无法知道到底删除哪一个。解决方法是在删除的存储过程或函数...
  • 存储过程的创建:例子:--1:创建输入参数的存储过程 --根据员工号删除指定的员工信息 CREATE OR REPLACE PROCEDURE proc1 (v_empno IN empnew.empno%TYPE) IS BEGIN --根据员工号删除指定的员工信息 DELETE FROM ...
  • 存储过程与存储函数的补充 MySQL的存储过程与存储函数有什么区别? 存储函数只能通过return语句返回单个值或者表对象。 存储过程不能用return,但是可以使用多个out参数返回多个值。 存储过程如何修改代码...
  • 求oracle语句 oracle怎么删除存储过程,函数,触发器,的oracle语句
  • 五、存储函数的调用与删除 六、存储过程与函数的比较 一、概述 存储在数据库中的被命名的PLSQL块,供所有用户程序调用,完成特定功能的子程序。 存储过程与存储函数的区别:是否用return返回值。 存储过程:类似于...
  • Informix存储过程和函数的创建执行和删除语法,已测试
  • 存储过程的调用与删除;例子:--调用无参的存储过程 begin first_proc; end;--调用带有输出参数的存储过程 DECLARE v_avgsalary NUMBER; v_count NUMBER; BEGIN PROC2(10,v_avgsalary,v_count); DBMS_OUTPUT.put...
  • MySql存储过程与函数

    千次阅读 2015-08-06 08:21:26
    存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可以避免开发人员重复的编写相同的SQL语句。而且,存储过程和函数是在MySQL服务器中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 694,859
精华内容 277,943
关键字:

删除存储函数