精华内容
下载资源
问答
  • 2021-05-01 08:42:29

    如果你在上一个银行的目中,当我们接到编写关于Oracle存储过程的任务时,我们会涉及到某些使用CALLABLE的接口调用存储过程的经验,一时不知如何下手,我查阅了一些资料,通过实践发现编写Oracle存储过程是非常不容易的工作。

    即使上路以后,调试和验证非常麻烦。简单地讲,Oracle存储过程就是存储在Oracle数据库中的一个程序。

    一. 概述

    Oracle存储过程开发的要点是:

    * 使用Notepad文本编辑器,用Oracle PL/SQL编程语言写一个存储过程;

    * 在Oracle数据库中创建一个存储过程;

    * 在Oracle数据库中使用SQL*Plus工具运行存储过程;

    * 在Oracle数据库中修改存储过程;

    * 通过编译错误调试存储过程;

    * 删除存储过程;

    二.环境配置

    包括以下内容:

    * 一个文本编辑器Notepad;

    * Oracle SQL*Plus工具,提交Oracle SQL和PL/SQL 语句到Oracle database。

    * Oracle 10g express数据库,它是免费使用的版本;

    需要的技巧:

    * SQL基础知识,包括插入、修改、删除等

    * 使用Oracle's SQL*Plus工具的基本技巧;

    * 使用Oracle's PL/SQL 编程语言的基本技巧;

    三.写一个存储过程

    Oracle储过程使用Oracle's PL/SQL 程序语言编写,让我们写一个什么工作都不做的存储过程,我们可以编译和运行它而不用担心会对数据库产生任何损害。

    在Notepad, 写下:

    CREATE OR REPLACE PROCEDURE skeleton

    IS

    BEGIN

    NULL;

    END;

    把文件存为skeleton.sql.

    让我们一行行遍历这个存储过程:

    CREATE OR REPLACE PROCEDURE skeleton

    IS

    BEGIN

    NULL;

    END;

    行1:

    CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;

    行2:

    IS关键词表明后面将跟随一个PL/SQL体。

    行3:

    BEGIN关键词表明PL/SQL体的开始。

    行4:

    NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;

    行5:

    END关键词表明PL/SQL体的结束

    四.创建一个存储过程

    SQL语句CREATE OR REPLACE PROCEDURE在Oracle数据库中创建、编译和保存一个存储过程。

    从Window打开SQL*Plus并且从SQL*Plus登录到你的数据库;打开skeleton.sql文件.

    在SQL>命令提示符下输入以下命令:

    SQL>@skeleton

    SQL>/

    SQL*Plus装载skeleton.sql文件的内容到SQL*Plus缓冲区并且执行SQL*Plus语句;SQL*Plus 会通知你存储过程已经被成功地创建。

    现在你的存储过程被创建,编译和保存在你的Oracle数据库,我们可以运行它。上述的相关内容就是对如何开发Oracle存储过程的描述,希望会给你带来一些帮助在此方面。

    【编辑推荐】

    【责任编辑:孙巧华 TEL:(010)68476606】

    点赞 0

    更多相关内容
  • MySQL修改存储过程

    2021-02-07 17:26:54
    在实际开发中,业务需求修改的情况时有发生,这样,可避免的需要修改存储过程的特征MySQL中,使用ALTER语句修改存储过程的特性语法格式ALTER {PROCEDURE | FUNCTION} sp_name [characteristic……]参数说明Sp_name...

    在实际开发中,业务需求修改的情况时有发生,这样,不可避免的需要修改存储过程的特征

    MySQL中,使用ALTER语句修改存储过程的特性

    语法格式

    ALTER {PROCEDURE | FUNCTION} sp_name [characteristic……]

    参数说明

    Sp_name,表示存储过程或函数的名称

    characteristic,表示要修改存储过程的哪个部分

    Characteristic的取值如下

    CONTAINS SQL,表示子程序包含SQL语句,但是,不包含读或写数据的语句

    NO SQL,表示子程序中,不包含SQL语句

    READS SQL DATA,表示子程序中,包含读数据的语句

    MODIFIES DATA,表示子程序中,包含写数据的语句

    SQL SECURITY {DEFINER | INVOKER},指明谁有权限来执行

    DEFINER,表示只有定义者,自己才能够执行

    INVOKER,表示调用者可以执行

    COMMENT’string’,表示注释信息

    修改存储过程CountProc1的定义

    将读写权限,改为MODIFIES SQL DATA,并指明调用者可以执行

    2afbf004120d1086188a41446c1f9f67.png

    查看修改后的信息

    ea62e4acc0f62488ae19edfd2f1a72a6.png

    目前,MySQL还不提供对已存在的存储过程的代码修改

    如果,一定要修改存储过程的diam,必须,先将存储过程删除之后,在重新编写代码,或者创建一个新的存储过程

    展开全文
  • 文章目录1 概述1.1 存储过程1.2 存储函数2 创建2.1 创建存储过程2.1.1 语法2.1.2 形参列表2.1.3 代码2.2 创建存储函数...存储过程和函数的查看、修改、删除6.1 查看6.2 修改6.3 删除7 储存过程的优缺点7.1 优点7.2 缺点...

    1 概述

    1.1 存储过程

    • 它的思想很简单,就是一组经过预先编译的SQL语句的封装。
    • 执行过程:存储过程预先存储在MySQL服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL语句全部执行。

    1.2 存储函数

    MySQL支持自定义函数,定义好之后,调用方式与调用MySQL预定义的系统函数一样。

    2 创建

    2.1 创建存储过程

    2.1.1 语法

    CREATE PROCEDURE 存储过程名 (IN | OUT | INOUT 参数名 参数类型,...)
    [characteristics ...]
    BEGIN 
    存储过程体
    END
    

    2.1.2 形参列表

    • 没有参数(无参数无返回)
    • 仅仅带IN类型(有参数无返回)
    • 仅仅带OUT类型(无参数有返回)
    • 既带IN又带OUT(有参数有返回)
    • 带INOUT(有参数有返回
      注意:IN、OUT、INOUT都可以在一个存储过程中带多个。

    2.1.3 代码

    -- 创建空参存储过程
    	CREATE PROCEDURE select_all_data () 
    	BEGIN
    		SELECT
    			* 
    		FROM
    		employees;
    	END;
    -- 存储过程的调用
    CALL select_all_data();
    
    
    -- 创建带OUT存储过程
    CREATE PROCEDURE show_min_salary ( OUT ms DOUBLE ) BEGIN
    	SELECT
    		min( salary ) INTO ms 
    	FROM
    	employees;
    END;
    -- 存储过程的调用
    -- 定义一个变量把结果存储起来
    CALL show_min_salary(@ms);
    -- 查看变量值
    SELECT @ms;
    
    
    -- 创建带IN存储过程
    CREATE PROCEDURE show_someone_salary ( IN emp_name VARCHAR(20) ) 
    BEGIN
    	SELECT
    		salary 
    	FROM
    		employees 
    	WHERE
    		last_name = emp_name;
    END;
    -- 存储过程的调用方式一
    CALL show_someone_salary('King');
    -- 存储过程的调用方式一
    SET @emp_name  = 'King';
    CALL show_someone_salary(@emp_name);
    
    
    -- 创建带IN和OUT的存储过程
    CREATE PROCEDURE show_someone_salary2 ( IN empname VARCHAR ( 20 ), OUT empsalary DOUBLE ) 
    BEGIN
    	SELECT
    		salary INTO empsalary 
    	FROM
    		employees 
    	WHERE
    		last_name = empname;
    END;
    -- 存储过程的调用方式
    CALL show_someone_salary2('Kochhar',@empsalary);
    SELECT @empsalary;
    
    
    -- 创建带INOUT的存储过程
    CREATE PROCEDURE show_mgr_name (
    	INOUT empname VARCHAR ( 20 )) 
    BEGIN
    	SELECT
    		last_name INTO  
    	FROM
    		employees 
    	WHERE
    	manager_id = ( SELECT employee_id FROM employees WHERE last_name = empname );
    END;
    -- 存储过程的调用方式
    SET @emp_name = 'De Haan';
    CALL show_mgr_name(@emp_name);
    SELECT @emp_name;
    

    2.2 创建存储函数

    2.2.1 语法

    CREATE FUNCTION 函数名(参数名 参数类型,...)
    RETURNS 返回值类型
    [characteristics]
    BEGIN
    	函数体 #函数体中肯定有return语句
    END;
    

    2.2.2 代码

    -- 创建空参函数方式一
    CREATE FUNCTION email_by_name()
    RETURNS VARCHAR(25)-- 返回的参数类型
    -- 解决you might want to use the less safe log_bin_trust_function_creators variable问题
    				DETERMINISTIC
    				CONTAINS SQL
    				READS SQL DATA
    BEGIN
    	RETURN (SELECT email FROM employees WHERE last_name = 'Abel');
    END;
    
    
     -- 创建空参函数方式二
    SET GLOBAL log_bin_trust_function_creators = 1; -- 解决you might want to use the less safe log_bin_trust_function_creators variable错误
    CREATE FUNCTION email_by_name2()
    RETURNS VARCHAR(25)
    BEGIN
    	RETURN (SELECT email FROM employees WHERE last_name = 'Abel');
    END;
    -- 函数调用
    select email_by_name();
    
    
     -- 创建有参函数
     CREATE FUNCTION email_by_id(emp_id INT)
     RETURNS VARCHAR(25)
     BEGIN
    		RETURN (SELECT email FROM employees WHERE employee_id = emp_id);
     END;
     -- 调用函数
    

    3 delimiter的作用

    -- 修改结束符为&
    DELIMITER &
    -- 修改结束符为;
    DELIMITER ;
    

    4 存储过程与存储函数的区别

    在这里插入图片描述
    此外,存储函数可以放在查询语句中使用,存储过程不行。反之,存储过程的功能更加强大,包括能够执行对表的操作(比如创建表,删除表等)和事务操作,这些功能是存储函数不具备的。

    5 创建函数时错误解决方法

    错误:

    you might want to use the less safe log_bin_trust_function_creators variable

    解决:

    • 方式一:加上必要的函数特性“[NOT] DETERMINISTIC”和“[CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}"
    • 方式二: SET GLOBAL log_bin_trust_function_creators = 1;

    6 存储过程和函数的查看、修改、删除

    6.1 查看

    -- 1.使用show create语句查看存储过程和函数的创建信息
    -- 查看存储过程
    SHOW CREATE PROCEDURE show_mgr_name;
    -- 查看函数
    SHOW CREATE FUNCTION email_by_id;
    
    -- 2.使用show status语句查看存储过程和和函数的状态信息
    -- 查看存储过程
    SHOW PROCEDURE STATUS LIKE 'show_mgr_name';
    -- 查看函数
    SHOW FUNCTION STATUS LIKE 'email_by_id';
    
    -- 3.从information_schema.Routines表中查看存储过程和函数的信息
    SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME = '存储过程名或函数名';
    -- 重名的时候指定类型是函数还是存储过程
    SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME = 'show_mgr_name' AND ROUTINE_TYPE = 'PROCEDURE';
    

    6.2 修改

    ALTER PROCEDURE show_max_salary SQL SECURITY INVOKER COMMENT '查询最高工资';
    

    6.3 删除

    DROP PROCEDURE 存储过程名;
    DROP FUNCTION 函数名;
    
    

    7 储存过程的优缺点

    7.1 优点

    • 存储过程可以一次编译多次使用。存储过程只在创建时进行编译,之后的使用都不需要重新编译,这就提升了SQL的执行效率。
    • 可以减少开发工作量。将代码封装成模块,实际上是编程的核心思想之一,这样可以把复杂的问题拆解成不同的模块,然后模块之间可以重复使用,在减少开发工作量的同时,还能保证代码的结构清晰。
    • 存储过程的安全性强。我们在设定存储过程的时候可以设置对用户的使用权限,这样就和视图一样具有较强的安全性。
    • 可以减少网络传输量。因为代码封装到存储过程中,每次使用只需要调用存储过程即可,这样就减少了网络传输量。
    • 良好的封装性。在进行相对复杂的数据库操作时,原本需要使用一条一条的SQL语句,可能要连接多次数据库才能完成的操作,现在变成了一次存储过程,只需要连接一次即可。

    7.2 缺点

    • 可移植性差。存储过程不能跨数据库移植,比如在MySQL、Oracle和SQLServer里编写的存储过程,在换成其他数据库时都需要重新编写。
    • 调试困难。只有少数DBMS支持存储过程的调试。对于复杂的存储过程来说,开发和维护都不容易。虽然也有一些第三方工具可以对存储过程进行调试,但要收费。
    • 存储过程的版本管理很困难。比如数据表索引发生变化了,可能会导致存储过程失效。我们在开发软件的时候往往需要进行版本管理,但是存储过程本身没有版本控制,版本迭代更新的时候很麻烦。
    • 它不适合高并发的场景。高并发的场景需要减少数据库的压力,有时数据库会采用分库分表的方式,而且对可扩展性要求很高,在这种情况下,存储过程会变得难以维护,增加数据库的压力,显然就不适用了。
    展开全文
  • SQLServer之修改存储过程

    千次阅读 2018-11-02 10:53:24
    Transact-SQL 存储过程修改为 CLR 存储过程,反之亦然。 ALTER PROCEDURE 不会更改权限,也影响相关的存储过程或触发器。 但是,当修改存储过程时,QUOTED_IDENTIFIER 和 ANSI_NULLS 的当前会话设置包含在该...

    修改存储过程注意事项

    只能修改先前在 SQL Server 中通过执行 CREATE PROCEDURE 语句创建的过程。

    Transact-SQL 存储过程修改为 CLR 存储过程,反之亦然。

    ALTER PROCEDURE 不会更改权限,也不影响相关的存储过程或触发器。 但是,当修改存储过程时,QUOTED_IDENTIFIER 和 ANSI_NULLS 的当前会话设置包含在该存储过程中。 如果设置不同于最初创建存储过程时有效的设置,则存储过程的行为可能会更改。

    如果原来的过程定义是使用 WITH ENCRYPTION 或 WITH RECOMPILE 创建的,那么只有在 ALTER PROCEDURE 中也包含这些选项时,这些选项才有效。

    使用SSMS数据库管理工具和T-SQL脚本修改存储过程语法一致。

    使用T-SQL脚本修改存储过程

    语法:

    --声明数据库引用
    use 数据库名;
    go

    --修改存储过程

    alter procedure [schema_name][.]procedure_name [;number]
    [{ @parameter [type_schema_name.] data_type} [ null | not null ][varying] [ = default ] [ out| output ] [readonly] ] [,......n]
    with [encryption][,][recompile][,][execute as clause]
    [for replication]
    as
    begin
    sql_statement;
    end
    go

    语法解析:

    --schema_name
    --过程所属架构的名称。 过程是绑定到架构的。如果在创建过程时未指定架构名称,则自动分配正在创建过程的用户的默认架构。

    --procedure_name
    --过程的名称。 过程名称必须遵循有关标识符的规则,并且在架构中必须唯一。
    --在命名过程时避免使用 sp_ 前缀。 此前缀由 SQL Server 用来指定系统过程。 如果存在同名的系统过程,则使用前缀可能导致应用程序代码中断。
    --可在 procedure_name 前面使用一个数字符号 (#procedure_name) 来创建局部临时程序,使用两个数字符号 (##procedure_name) 来创建全局临时程序。 
    --局部临时程序仅对创建了它的连接可见,并且在关闭该连接后将被删除。 全局临时程序可用于所有连接,并且在使用该过程的最后一个会话结束时将被删除。 对于 CLR 过程,不能指定临时名称。
    --过程或全局临时程序的完整名称(包括 ##)不能超过 128 个字符。 局部临时程序的完整名称(包括 #)不能超过 116 个字符。

    --; number
    --适用范围: SQL Server 2008 到 SQL Server 2017 和 Azure SQL Database。
    --用于对同名的过程分组的可选整数。使用一个 DROP PROCEDURE 语句可将这些分组过程一起删除。

    --@parameter
    --在过程中声明的参数。 通过将 at 符号 (@) 用作第一个字符来指定参数名称。 参数名称必须符合标识符规则。 每个过程的参数仅用于该过程本身;其他过程中可以使用相同的参数名称。
    --可声明一个或多个参数;最大值是 2,100。 除非定义了参数的默认值或者将参数设置为等于另一个参数,否则用户必须在调用过程时为每个声明的参数提供值。 
    --如果过程包含表值参数,并且该参数在调用中缺失,则传入空表。 参数只能代替常量表达式,而不能用于代替表名、列名或其他数据库对象的名称。 有关详细信息,请参阅 EXECUTE (Transact-SQL)。
    --如果指定了 FOR REPLICATION,则无法声明参数。

    --[type_schema_name. [ =] data_type
    --参数的数据类型以及该数据类型所属的架构。
    --针对 Transact-SQL 过程的准则:
    --所有 Transact-SQL 数据类型都可以用作参数。
    --您可以使用用户定义的表类型创建表值参数。 表值参数只能是 INPUT 参数,并且这些参数必须带有 READONLY 关键字。 有关详细信息,请参阅使用表值参数(数据引擎)
    --游标数据类型只能是 OUTPUT 参数,并且必须带有 VARYING 关键字。
    --针对 CLR 过程的准则:
    --在托管代码中具有等效值的所有本机 SQL Server 数据类型都可以用作参数。 有关 CLR 类型与 SQL Server 系统数据类型之间关系的详细信息,请参阅映射 CLR 参数数据。 有关 SQL Server 系统数据类型及其语法的详细信息,请参阅数据类型 (Transact-SQL)。
    --表值或游标数据类型不能用作参数。
    --如果参数的数据类型为 CLR 用户定义类型,则必须对此类型有 EXECUTE 权限。

    --varying
    --指定作为输出参数支持的结果集。 该参数由过程动态构造,其内容可能发生改变。 仅适用于游标参数。 该选项对于 CLR 过程无效。

    --default
    --参数的默认值。 如果为参数定义了默认值,则无需指定此参数的值即可执行过程。 默认值必须是常量或 NULL。 该常量值可以采用通配符的形式,这使其可以在将该参数传递到过程时使用 LIKE 关键字。
    --只有 CLR 过程的默认值记录在 sys.parameters.default 列中。 对于 Transact-SQL 过程参数,该列将为 NULL。

    --out|output
    --指示参数是输出参数。 使用 OUTPUT 参数将值返回给过程的调用方。 除非是 CLR 过程,否则 text、ntext 和 image 参数不能用作 OUTPUT 参数。 OUTPUT 参数可以为游标占位符,CLR 过程除外。 不能将表值数据类型指定为过程的 OUTPUT 参数。

    --readonly
    --指示不能在过程的主体中更新或修改参数。 如果参数类型为表值类型,则必须指定 READONLY。

    --encryption
    --适用范围:SQL Server( SQL Server 2008 到 SQL Server 2017)、 Azure SQL Database。
    --指示 SQL Server 将 CREATE PROCEDURE 语句的原始文本转换为模糊格式。 模糊代码的输出在 SQL Server 的任何目录视图中都不能直接显示。 对系统表或数据库文件没有访问权限的用户不能检索模糊文本。 
    --但是,可以通过 DAC 端口访问系统表的特权用户或直接访问数据文件的特权用户可以使用此文本。 此外,能够向服务器进程附加调试器的用户可在运行时从内存中检索已解密的过程。 有关如何访问系统元数据的详细信息,请参阅元数据可见性配置。
    --该选项对于 CLR 过程无效。
    --使用此选项创建的过程不能作为 SQL Server 复制的一部分发布。

    --recompile
    --指示 数据库引擎不缓存此过程的查询计划,这强制在每次执行此过程时都对该过程进行编译。 有关强制重新编译的原因的详细信息,请参阅重新编译存储过程。 在指定了 FOR REPLICATION 或者用于 CLR 过程时不能使用此选项。
    --若要指示 数据库引擎放弃过程内单个查询的查询计划,请在该查询的定义中使用 RECOMPILE 查询提示。 有关详细信息,请参阅查询提示 (Transact-SQL)。

    --execute as 子句
    --指定在其中执行过程的安全上下文。
    --对于本机编译存储过程(从 SQL Server 2016 (13.x) 开始和在 Azure SQL Database 中),EXECUTE AS 子句没有任何限制。 在 SQL Server 2014 (12.x) 中,对于本机编译的存储过程,支持 SELF、OWNER 和 ‘user_name’ 子句。
    --有关详细信息,请参阅 EXECUTE AS 子句 (Transact-SQL)。
    --SELF
    --EXECUTE AS SELF 与 EXECUTE AS user_name 等价,其中指定用户是创建或更改模块的用户。 创建或更改模块的用户的实际用户 ID 存储在 sys.sql_modules 或 sys.service_queues 目录视图的 execute_as_principal_id 列中。
    --OWNER
    --指定模块内的语句在模块的当前所有者上下文中执行。 如果模块没有指定的所有者,则使用模块架构的所有者。 不能为 DDL 或登录触发器指定 OWNER。
    --' user_name '
    --指定模块内的语句在 user_name 指定的用户的上下文中执行。 将根据 user_name 来验证对模块内任意对象的权限。 不能为具有服务器作用域的 DDL 触发器或登录触发器指定 user_name。 请改用 login_name。
    --user_name 必须存在于当前数据库中,并且必须是单一实例帐户。 user_name 不能为组、角色、证书、密钥或内置帐户,如 NT AUTHORITY\LocalService、NT AUTHORITY\NetworkService 或 NT AUTHORITY\LocalSystem。
    --执行上下文的用户 ID 存储在元数据中,可以在 sys.sql_modules 或 sys.assembly_modules 目录视图的 execute_as_principal_id 列查看。
    --' login_name '
    --指定模块内的语句在 login_name 指定的 SQL Server 登录的上下文中执行。 将根据 login_name 来验证对模块内任意对象的权限。 只能为具有服务器作用域的 DDL 触发器或登录触发器指定 login_name。
    --login_name 不能为组、角色、证书、密钥或内置帐户,如 NT AUTHORITY\LocalService、NT AUTHORITY\NetworkService 或 NT AUTHORITY\LocalSystem。

    --for replication
    --适用范围:SQL Server( SQL Server 2008 到 SQL Server 2017)、 Azure SQL Database。
    --指定为复制创建该过程。 因此,它不能在订阅服务器上执行。 使用 FOR REPLICATION 选项创建的过程可用作过程筛选器,且仅在复制过程中执行。 如果指定了 FOR REPLICATION,则无法声明参数。 对于 CLR 过程,不能指定 FOR REPLICATION。 对于使用 FOR REPLICATION 创建的过程,忽略 RECOMPILE 选项。
    --FOR REPLICATION 过程在 sys.objects 和 sys.procedures 中包含 RF 对象类型。

    --{ [ BEGIN ] sql_statement [;] [ ...n ] [ END ] }
    --构成过程主体的一个或多个 Transact-SQL 语句。 您可以使用可选的 BEGIN 和 END 关键字将这些语句括起来。 有关信息,请参阅后面的“最佳实践”、“一般备注”以及“限制和局限”部分。

    示例:

    --声明数据库引用
    use testss;
    go

    --修改存储过程
    alter procedure [dbo].[noreference]
    ;1
    @inputparamter int=null,@outputparamter nvarchar(100)=null output
    with encryption,recompile,execute as owner
    --for replication
    as
    begin
    if @inputparamter is not null
    begin
    select * from test1 where id=@inputparamter;
    set @outputparamter='我是修改过的有参数的输出指定值的存储过程'; 
    end
    else
    begin
    select * from test1;
    set @outputparamter='我是修改过的无参数的输出全部值的存储过程';
    end
    end
    go

    示例结果:本示例演示如何调用存储过程和存储过程执行结果。

    1、连接数据库-》选择数据库-》展开数据库-》展开可编程性-》展开存储过程-》选择存储过程-》右键点击-》选择执行存储过程。

    2、在执行存储过程弹出框-》输入存储过程参数-》点击确定。

    3、存储过程执行结果。

    展开全文
  • 语法格式 3.2 过程体 3.3 创建存储过程 3.4 修改存储过程 3.5 删除存储过程 一、 数据库函数 MySQL 数据库函数提供了能够实现各种功能的方法,使我们在查询记录时能够更高效 的输出。MySQL内建了很多函数,常用的...
  • MySQL的存储过程

    万次阅读 多人点赞 2022-01-26 16:43:19
    MySQL5.0版本开始支持存储过程,存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法,存储过就是数据库SQL与层层面的代码封装与重用 特性 1.有输入输出参数,可以声明变量,...
  • MySQL储存过程详解

    2021-03-03 19:49:41
    我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该...
  • 为什么建议使用存储过程

    千次阅读 2019-07-21 23:28:57
    在公司的系统升级换代中,明确规定在数据库开发中允许再使用存储过程了,以前的老一代系统中,很多复杂的业务逻辑都是存储过程写的,那为什么风光无限的存储过程不再被宠幸了呢?首先了解下什么是存储过程,它有...
  • Day463.视图&存储过程&存储函数 -mysql

    千次阅读 2021-11-28 19:20:14
    视图 1. 常见的数据库对象 对象 描述 ...表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录 ...系统表的数据通常由数据库系统维护,程序员通常应该修改,只可查看 ...存储过程(PROCEDURE)
  • 存储过程和函数的查看、修改、删除6. 关于存储过程使用的争议 MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要...
  • mysql采用存储过程插入大批量数据

    千次阅读 2018-12-08 18:08:12
    人在年轻的时候,觉得到处都是人,别人的事就是你的事,到了中年以后,才觉得世界...线上库当然不能随意的增加和修改索引测试,但是测试库的数据量较少,测试效果不明显。因此考虑往测试库中增加百万的模拟数据。 2...
  • mysql储存过程是什么

    2021-02-01 18:27:50
    但是在数据库的实际操作中,经常会有一个完整的操作需要多条 SQL 语句处理多个表才能...存储过程是数据库存储的一个重要的功能,但是 MySQL 在 5.0 以前并支持存储过程,这使得 MySQL 在应用上大打折扣。好在 My...
  • FineReport调用存储过程

    千次阅读 2021-02-12 01:57:40
    “总结一下本人在项目中遇到的问题,如何在数据库表名未知且作为一种查询条件的情况下查询出数据集,仅通过FineReport+Oracle实现。首先分析这个问题的条件和要求:条件:只有一个ID,依靠这个ID查询出一个...
  • 为什么推荐使用存储过程

    万次阅读 多人点赞 2019-06-17 18:00:33
    本文作者:菜v菜 | 观点整理:徐刘根 ...存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程...
  • ORACLE存储过程

    千次阅读 多人点赞 2021-10-27 16:17:40
    目录一、存储过程的创建二、存储过程语法说明1.存储过程的基本结构2.变量的声明和赋值三、流程控制语句四、循环控制语句 本文是基于oracle编写的存储过程,以下所说的存储过程均为oracle中的存储过程,以及下面所说...
  • 在实际运维中,遇到一台HP存储P2000故障处理之管理IP丢失不能进入到管理页面,以下是实际处置过程。 当网络不能连接时,可采用1394线连接,方式如下: 1394线USB头接笔记本,另一头接存储的管理1394口,安装HP驱动 ...
  • java调用存储过程

    千次阅读 2021-02-28 14:12:54
    这里是java调用存储过程。packagecom.lijianbo.procedure;importjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Types;/***@author*存储过程MySQL*/...
  • 存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。 1.存储过程概述 1.1 概述 含义:存储过程的英文是 Stored Procedure 。...
  • 存储过程和函数的操作

    千次阅读 2021-11-22 20:40:24
    注意:在具体创建存储过程时,存储过程不能与已经存在的存储过程名重名。除了上述要求外,推荐存储过程名命名(标识符)为procedure_xxx或者proce_xxx; procedure_parameter中每个参数的语法形式如下: [IN|OUT|...
  • 基本上我下面要讲述的侧重点是如何使用,因为其实分页存储过程网上很多,如果你懒得找,那么可以直接使用下面这个我经过测试,并通过修改,网上评价都比较高的分页存储过程。 这个分页主要优点如下: 1、大容量下的...
  • -- 不能使用DESC 存储过程名来查看存储过程的结构 -- 查询某个存储过程的定义,即创建语句 -- \G是在命令行窗口中将查询信息竖着展示 show create procedure test.pro_test1 \G; 1.5 删除存储过程 DROP PROCEDURE ...
  • 数据库实验-存储过程

    2011-12-13 13:05:46
    数据库系统原理与设计 实验教程之实验答案 实验-存储过程
  • MySql存储过程和游标的使用。

    千次阅读 2022-03-24 09:30:07
    这里存储过程和游标的定义和作用就介绍了,网上挺多的,只通过简单的介绍,然后用个案例让大家快速了解。实例中会具体说明变量的定义,赋值,游标的使用,控制语句,循环语句的介绍。 1.创建存储过程。 CREATE ...
  • 存储过程的优缺点

    千次阅读 2019-02-21 09:40:03
    前段时间,在维护公司的几年前的一个项目,虽说上是历史悠久,但也有些年头了,采用三层架构,加上存储过程的这么一个老的架构,本来这个架构也没什么问题,大部分系统都是这么干的,但是由于这个系统存储过程被...
  • mysql创建使用存储过程

    千次阅读 2019-10-28 10:37:37
    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,...
  • 1.遇到存储过程 回顾之前知识,使用在当下(毕业设计) 2.了解周边知识 二、思路&方案 1.了解存储过程定义、语法、种类 2.存储过程有什么优缺点 3。存储过程与触发器和函数的联系 三、过程 1.什么是存储过程? ...
  • 储存过程存储过程是存储在数据库目录中的一段声明性SQL语句。 存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数来执行它。 存储过程的优点: ① 增强了SQL语句的功能和灵活性; ② ...
  • 存储过程存储函数

    2019-03-01 14:13:16
    存储过程存储函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储...本篇博文将介绍存储过程存储函数的含义、作用,以及创建使用查看修改及删除存储过程存储函数的方法。 在数据库系统中,为了保...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 614,985
精华内容 245,994
关键字:

存储过程的修改不能采用