存储过程

SQL Server 存储过程

我的梦境 提交于 2020-02-28 16:45:45
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于存储过程在创建时即在数据库服务器上进行了编译并存储在数据库中,所以存储过程运行要比单个的SQL语句块要快。同时由于在调用时只需用提供存储过程名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。 1、 存储过程的优点 A、 存储过程允许标准组件式编程 存储过程创建后可以在程序中被多次调用执行,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。 B、 存储过程能够实现较快的执行速度 如果某一操作包含大量的T-SQL语句代码,分别被多次执行,那么存储过程要比批处理的执行速度快得多。因为存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划。而批处理的T

存储过程/函数列表Mysql命令行

喜欢而已 提交于 2020-02-28 00:59:26
如何在mysql命令行(如 show tables; 查看存储过程或存储函数的列表 show tables; 或 show databases; 命令。 #1楼 以名称方式查看程序 select name from mysql.proc 下面的代码用于列出所有过程,下面的代码给出与显示过程状态相同的结果 select * from mysql.proc #2楼 要只显示您的: SELECT db, type, specific_name, param_list, returns FROM mysql.proc WHERE definer LIKE CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%')); #3楼 选择: SELECT * FROM INFORMATION_SCHEMA.ROUTINES #4楼 show procedure status; 使用此命令,您可以查看数据库中的所有过程 #5楼 Praveenkumar_V的帖子的一个变体: SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE'; SELECT `name` FROM mysql.proc WHERE db = 'dbname'

Oracle存储过程

安稳与你 提交于 2020-02-27 21:57:00
http://blog.csdn.net/u013057786/article/details/17165623 Oracle存储过程 2013-12-06 13:11 807人阅读 评论 (0) 收藏 举报 oracle 一、 存储过程 1、定义 所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过 编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数 来调用并执行它,从而完成一个或一系列的数据库操作。 2、存储过程的创建 Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。 (1) 无参存储过程语法 Sql代码 create or replace procedure NoParPro as //声明 ; begin // 执行 ; exception//存储过程异常 ; end; (2) 带参存储过程实例 Sql代码 create or replace procedure queryempname(sfindno emp.empno%type) as sName emp.ename%type; sjob emp.job%type; begin .... exception .... end; (3) 带参数存储过程含赋值方式 Sql代码 create or

如何在SQL Server中生成和使用CRUD存储过程

允我心安 提交于 2020-02-27 11:04:38
在本文中,请参阅如何在 SQL Server 中生成和使用 CRUD 存储过程。 大多数数据库系统基于缩写 CRUD调用的最简单的4种数据操作操作进行操作。 此首字母缩写词代表CREATE,READ,UPDATE和DELETE。 在开发和管理数据库时,可以使用 CRUD存储过程来执行所有与数据有关的任务。 这种存储过程的好处是,一旦编写了一次,便可以根据需要重复使用多次,而无需每次都编写新代码。 这是对临时SQL语句的重大改进,临时SQL语句应在每次使用它们时重新编写。 让我们详细了解每个 CRUD存储过程。 仔细研究 CRUD存储过程 在继续之前,我们要谈一谈 CRUD存储过程的命名。 通常,以这样一种方式命名它们是一个好习惯,即每个过程都包含要应用到的表的名称,并以它们正在执行的操作的名称结尾。 这样,为同一表编写的所有过程将被分组在一起,并且更容易搜索。 但是,它不是强制性的, 你 可以遵循自己喜欢的任何命名方式。 现在,让我们看一下第一种过程类型。 创建程序 这些将执行 INSERT语句,创建一个新记录。 此类过程应为表的每一列接受一个参数。 1 SQL 2 3 4 5 IF OBJECT_ID('Sales.usp_Currency_Insert') IS NOT NULL BEGIN DROP PROC Sales.usp_Currency_Insert END GO

Oracle导出存储过程对象

℡╲_俬逩灬. 提交于 2020-02-27 05:54:07
$ pwd /home/oracle 导出存储过程 $ vi test.par INCLUDE=PROCEDURE:"IN ('P_TEST_LAST_DDL')" SCHEMAS=scott    $ sqlplus / as sysdba SQL> create directory backup as '/home/oracle'; Directory created. SQL> grant write,read on directory backup to scott; Grant succeeded. $ sqlplus scott/tiger SQL> create or replace procedure P_TEST_LAST_DDL 2 as 3 begin 4 null; 5 end; 6 / Procedure created. SQL> select status from user_objects a where a.object_name = 'P_TEST_LAST_DDL'; STATUS -------------- VALID $ expdp scott/tiger directory=backup parfile=test.par file=proceduretest.dmp    Export: Release 11.2.0.4.0 -

Oracle 存储过程创建表

耗尽温柔 提交于 2020-02-27 04:39:46
用存储过程创建数据表: 创建时注意必须添加authid current_user ,如果创建的表已存在,存储过程继续执行,但如不不加此关键语句,存储过程将出现异常, 这个语句相当于赋权限。 创建语句如下: create or replace procedure sp_create_mnl(i_id varchar2) authid current_user as /********************************* 名称:sp_create_mnl 功能描述:创建模拟量历史数据存储表 修订记录: 版本号 编辑时间 编辑人 修改描述 1.0.0 2012-9-20 wylaok 1.创建此存储过程 1.0.1 2012-9-21 wylaok 2.修改表名称及变量名称,增加必要注释 入参出参描述: i_id 测点编号 **********************************/ v_tablename varchar2(30);--表名 v_flag number(10,0); v_sqlfalg varchar(200); begin v_flag:=0; v_tablename:=CONCAT('MNL', UPPER(i_id)); v_sqlfalg:='select count(*) from user_TABLES where table

Oracle通用分页存储过程的创建与使用

匆匆过客 提交于 2020-02-27 04:32:29
1.创建Oracle包的定义。使用 REF CURSOR 数据类型来处理 Oracle 结果集。REF CURSOR 是一个指向 PL/SQL 查询所返回的结果集的指针。与普通的游标不同,REF CURSOR 是一个变量,它是对游标的引用,可以在执行时将其设置为指向不同的结果集。使用 REF CURSOR 输出参数可以将 Oracle 结构化程序的结果集传递回调用应用程序。通过在调用应用程序中定义 OracleType.Cursor 数据类型的输出参数,可以访问 REF CURSOR 所指向的结果集。 create or replace package MF_PAK_001 is type t_cursor is ref cursor; procedure GetDataByPage( p_tableName varchar2, p_fields varchar2, p_filter varchar2, p_sort varchar2, p_curPage number, p_pageSize number, p_cursor out t_cursor, p_totalRecords out number );end MF_PAK_001; 2.创建包体。在包体中实现具体的分页存储过程。 create or replace package body MF_PAK_001

存储过程

会有一股神秘感。 提交于 2020-02-26 14:16:08
create procedure 存储过程名(参数) begin sql语句; end; 修改数据库结束符号的sql语句,将;修改成其他符号:比如“#” delimiter # 修改数据库的结束符号,则存储过程sql语句修改如下: create procedure 存储过程名(参数) begin sql语句; end# 调用执行存储过程: call 存储名(参数)# 带参数的存储过程参数类型: in: 将参数带进去 out:将参数带出来 inout: 可以带进去又可以带出来 create procedure pro_c( in x int) begin select * from t_student where id = x; end# 调用 call pro_c(12) # 多个参数创建存储过程 create procedure pro_e( in sclass int , in enname varchar(20)) begin select * from t_student where class = sclass or name = enname; end # OUT类型存储过程 存储过程:获取3班成绩最高的存储过程 create procedure pro_r1(out x int) begin select max(score) into x from t

GridView存储过程分页

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-26 06:28:20
抽空写一下自己用的关于GridView存储过程分页的代码,优点就不用多说了,主要是用于数据库端分页,解决数据量过大的分页问题。存储过程还是以前写的CTE方法的分页,还是在这里贴一下代码吧, 具体请见存储过程分页实现代码,2005 T-SQL新增功能 一文。 USE [ WGSMSDbase ] GO /**/ /* ***** 对象: StoredProcedure [dbo].[sp_CTE] 脚本日期: 08/25/2007 11:39:01 ***** */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,microant> -- Create date: <Create Date,,20070705> -- Description: <Description,,CTE分页> -- ============================================= CREATE PROCEDURE [ dbo ] . [ sp_CTE ] ( -- Add the parameters for the stored procedure here @TableName nvarchar

MySQL常用语法

孤街醉人 提交于 2020-02-26 03:33:02
零、用户管理:   1、新建用户:     >CREATE USER name IDENTIFIED BY 'ssapdrow';   2、更改密码:     >SET PASSWORD FOR name=PASSWORD('fdddfd');   3、权限管理     >SHOW GRANTS FOR name; //查看name用户权限     >GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的所有权限     >REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限; 一、数据库操作:    1、查看数据库:     >SHOW DATABASES;   2、创建数据库:     >CREATE DATABASE db_name;  //db_name为数据库名   3、使用数据库:     >USE db_name;   4、删除数据库:     >DROP DATABASE db_name; 二、创建表:   1、创建表:     >CREATE TABLE table_name(     >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。