精华内容
下载资源
问答
  • c#用command代码创建存储过程代码
  • 阿里推荐最好不使用存储过程,因为存储过程代码过长涉及逻辑太多,导致修改业务时存储过程代码难以下手;于是没看过存储过程; 导致要用的时候不会,但是作为一名开发还是要会存储过程,于是百度学习了一波在此记录...

    存储过程创建及springboot代码调用存储过程


    阿里推荐最好不使用存储过程,因为存储过程代码过长涉及逻辑太多,导致修改业务时存储过程代码难以下手;于是没看过存储过程;
    导致要用的时候不会,但是作为一名开发还是要会存储过程,于是百度学习了一波在此记录;
    我是在navacat中创建的存储过程

    在这里插入图片描述
    右键函数选择新建函数
    在这里插入图片描述
    自定义函数名,选择过程;
    在这里插入图片描述
    然后添加输入输出参数点击完成;
    我这里是输出了三个参数;这样存储过程就创建完成了;在这里插入图片描述
    右键运行存储过程函数也是生效的
    在这里插入图片描述
    接下来就要考虑在项目中怎么实现调用创建好的存储过程;

    
    import com.lansi.realtynavi.mapper.pojo.DataInfoPo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.dao.DataAccessException;
    import org.springframework.jdbc.core.CallableStatementCallback;
    import org.springframework.jdbc.core.CallableStatementCreator;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Component;
    import org.springframework.transaction.TransactionStatus;
    import org.springframework.transaction.support.TransactionCallback;
    import org.springframework.transaction.support.TransactionTemplate;
    
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @Description 存储过程
     * @Date 2021/3/18 13:50
     * @Created by nuoyi
     */
    @Component
    public class ProcedureReturnListExecutor {
        @Autowired
        private JdbcTemplate jdbcTemplate;
        @Autowired
        private TransactionTemplate template;
        public List<DataInfoPo> get(){
            ProcedureReturnListTransactionCallback callback = new ProcedureReturnListTransactionCallback();
            return template.execute(callback);
        }
        class ProcedureReturnListTransactionCallback implements TransactionCallback<List<DataInfoPo>> {
            @Override
            public List<DataInfoPo> doInTransaction(TransactionStatus transactionStatus) {
                return jdbcTemplate.execute(new CallableStatementCreator() {
                    @Override
                    public CallableStatement createCallableStatement(Connection con) throws SQLException {
                        String procedure = "{call selectData(?,?,?)}";
                        CallableStatement cs = con.prepareCall(procedure);
                        cs.registerOutParameter(1, Types.INTEGER);
                        cs.registerOutParameter(2, Types.BIGINT);
                        cs.registerOutParameter(3, Types.BIGINT);
                        return cs;
                    }
                }, new CallableStatementCallback<List<DataInfoPo>>() {
                    @Override
                    public List<DataInfoPo> doInCallableStatement(CallableStatement cs)
                            throws SQLException, DataAccessException {
                        ResultSet rs = cs.executeQuery();
                        List<DataInfoPo> list = new ArrayList<>();
                        while (rs.next()) {
                            Integer id = rs.getInt(1);
                            Long dataInfo = rs.getLong(2);
                            Long dataTime = rs.getLong(3);
                            DataInfoPo dataInfoPo = new DataInfoPo();
                            dataInfoPo.setId(id);
                            dataInfoPo.setData_info(dataInfo);
                            dataInfoPo.setData_time(dataTime);
                            list.add(dataInfoPo);
                        }
                        return list;
                    }
                });
            }
        }
    }
    

    在这里插入图片描述
    在自己需要用的地方调用即可
    在这里插入图片描述
    这样就完成啦。

    展开全文
  • 创建存储过程的基本代码结构

    千次阅读 2018-08-02 10:55:53
    1.存储过程简介 存储过程(Stored Procedure)是数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出...2.创建存储过程的基本代码结构 CREATE PROCEDUR...

    1.存储过程简介

    存储过程(Stored Procedure)是数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。

     2.创建存储过程的基本代码结构

    CREATE PROCEDURE Procedure_Name  
     
    --Procedure_Name为存储过程名(不能以阿拉伯数字开头),在一个数据库中触发器名是唯一的。名字的长度不能超过个字。PROCEDURE可以简写为PROC。
    	 
    @Param1 Datatype,@Param2 Datatype 
    	
    --@Param1和@Param2为存储过程的参数,Datatype为参数类型,多个参数用逗号隔开,最多允许个参数。
    	
    AS --存储过程要执行的操作 
     
    BEGIN
    	
    --BEGIN跟END组成一个代码块,可以写也可以不写,如果存储过程中执行的SQL语句比较复杂,用BEGIN和END会让代码更加整齐,更容易理解。
     
        
    END
    GO --GO就代表结操作完毕  
     
     
    exec Procedure_Name [参数名] --调用存储过程Procedure_Name。
     
    drop procedure Procedure_Name --删除存储过程Procedure_Name,不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
     
    show procedure status --显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
     
    show create procedure Procedure_Name --显示存储过程Procedure_Name的详细信息
     
    exec sp_helptext Procedure_Name --显示你这个Procedure_Name这个对象创建文本
    

     

    展开全文
  • 创建存储过程代码

    2019-10-06 23:45:14
    set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: bin -- Create date: 2009-07-22 12:41 ...-- Description: 分页,用到了ROW_NUMB...
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    
    
    -- =============================================
    -- Author:        bin
    -- Create date: 2009-07-22 12:41
    -- Description:    分页,用到了ROW_NUMBER()
    -- =============================================
    create PROCEDURE [dbo].[proc_SplitPage_wb]
    @tblName   varchar(255),       -- 表名
    @strFields varchar(1000) = '*', -- 需要返回的列,默认*
    @strOrder varchar(255)='',      -- 排序的字段名,必填
    @strOrderType varchar(10)='ASC', -- 排序的方式,默认ASC
    @PageSize   int = 10,          -- 页尺寸,默认10
    @PageIndex int = 1,           -- 页码,默认1
    @strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where)
    AS
    
    declare @strSQL   varchar(5000)
    
    if @strWhere !=''
    set @strWhere=' where '+@strWhere
    
    set @strSQL=
    'SELECT * FROM ('+
        'SELECT ROW_NUMBER() OVER (ORDER BY '+@strOrder+' '+@strOrderType+') AS pos,'+@strFields+' '+
        'FROM '+@tblName+' '+@strWhere+
    ') AS sp WHERE pos BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND '+str(@PageIndex*@PageSize)


    exec (@strSQL)

     

    转载于:https://www.cnblogs.com/cookies9/archive/2013/02/21/2921363.html

    展开全文
  • 本节需要用到的有2部分,第一部分是如何在Derby中创建存储过程,第二部分是如何在Mybatis中调用存储过程,具体实例代码大家参考下本文吧
  • 为数据库中所有表生成创建存储数据的存储过程代码Author:CoolRzsQQ :61437524E-Mail:CoolRzs@163.comDate :13:30 2006-12-18 没有系统学过 SQL Server 知识,Transact-SQL 更是只在书本中东拼西凑的看了点,...

    为数据库中所有表生成创建存储数据的存储过程代码
    Author:CoolRzs
    QQ    :61437524
    E-Mail:CoolRzs@163.com
    Date  :13:30 2006-12-18

            没有系统学过 SQL Server 知识,Transact-SQL 更是只在书本中东拼西凑的看了点,昨晚突然想这样写段代码来为数据库中所有表存储数据生成存储过程;也不知道这样写对不对,合不合规范,主要是想借此学习一下游标的使用;不过想要的结果倒是得到了,贴在这里,希望道上的高手给指点指点。

    /*
    过 程 名 : sp_CreateStoreProcedure
    功能描述 : 为数据库中所有表生成创建存储数据的存储过程代码
    作    者 : CoolRzs
    */
    DECLARE @s VARCHAR(8000), @v VARCHAR(8000), @outfield varchar(20), @tabname VARCHAR(20), @tabid INT, @fieldname VARCHAR(20), @Type VARCHAR(20), @Length VARCHAR(4)
    SET @tabname = ''
    SET @tabid = 0
    DECLARE cur_TabName SCROLL CURSOR FOR
    SELECT id, OBJECT_NAME(id) AS tabname FROM sysobjects WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0
    OPEN cur_TabName
    FETCH FIRST FROM cur_TabName INTO @tabid, @tabname
    WHILE @@FETCH_STATUS = 0
    BEGIN
    SET @s= ''
    PRINT '/* ==sp_Store' + @tabname + ' Begin== */'
    PRINT 'if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[sp_Store' + @tabname + ']'') and OBJECTPROPERTY(id, N''IsProcedure'') = 1)'
    PRINT 'drop procedure [dbo].[sp_Store' + @tabname + ']'
    PRINT 'GO'
    PRINT 'SET QUOTED_IDENTIFIER OFF'
    PRINT 'GO'
    PRINT 'SET ANSI_NULLS OFF '
    PRINT 'GO'
    PRINT 'CREATE PROCEDURE sp_Store' + @tabname
    DECLARE cur_FieldName SCROLL CURSOR FOR
    Select c.name, t.name, c.length from syscolumns c inner join systypes t on c.xtype = t.xtype where id = @tabid order by c.colorder
    OPEN cur_FieldName
    FETCH FIRST FROM cur_FieldName INTO @fieldname, @Type, @Length
    WHILE @@FETCH_STATUS = 0
    BEGIN
    IF (LOWER(@fieldname) = 'id') AND (LOWER(@Type) = 'int')
    SET @outfield =  '@' + @fieldname + ' ' + @Type + ' output'
    ELSE
    BEGIN
    IF (LOWER(@Type) = 'varchar')
    --这里仅判断了 varchar 类型,实际应用中可能会有更多需要这样判断的类型;
    BEGIN
    PRINT '@' + @fieldname + ' ' + @Type + '(' + @Length + '),'
    END
    ELSE
    BEGIN
    PRINT '@' + @fieldname + ' ' + @Type + ','
    END
    END
    IF (LOWER(@fieldname) <> 'id')
    IF (@s = '')
    BEGIN
    SET @s = @fieldname
    SET @v = '@' + @fieldname
    END
    ELSE
    BEGIN
    SET @s = @s + ', ' + @fieldname
    SET @v = @v + ', @' + @fieldname
    END
    FETCH NEXT FROM cur_FieldName INTO @fieldname, @Type, @Length
    END
    CLOSE cur_FieldName
    DEALLOCATE cur_FieldName
    PRINT @outfield
    PRINT 'AS'
    PRINT 'INSERT INTO ' + @tabname + ' (' + @s + ') '
    PRINT 'VALUES (' + @v + ')'
    PRINT 'SET @id =  @@IDENTITY'
    PRINT 'GO'
    PRINT 'SET QUOTED_IDENTIFIER OFF '
    PRINT 'GO'
    PRINT 'SET ANSI_NULLS ON '
    PRINT 'GO'
    PRINT '/* ==sp_Store' + @tabname + ' End== */'
    PRINT ''
    FETCH NEXT FROM cur_TabName INTO @tabid, @tabname
    END
    CLOSE cur_TabName
    DEALLOCATE cur_TabName

    --=转载请保持以上信息的完整,谢谢!=--

    --[完]  

    展开全文
  • 数据库创建存储过程

    2017-12-18 22:35:00
    创建存储过程的原因:一般在数据库中SQL编辑器只能写sql语句,创建存储过程后可在对象编辑器中加入除了sql语句之外的语句(例如:if,else语句)。创建存储过程类似于python中创建函数,可传参。 一.在Mysql-front...
  • MySql创建存储过程

    2020-11-03 11:22:34
    mysql 创建存储过程 一、存储过程的创建和调用 存储过程就是具有名字的一段代码,用来完成一个特定的功能。 创建的存储过程保存在数据库的数据字典中。 1.创建 – create procedure 存储过程名(参数1,参数2,··...
  • 一、什么是MySQL存储过程?   在大型项目中,有时候需要重复执行能够完成特定功能的SQL语句集,而MySQL为我们提供了存储过程的概念,存储过程是...三、Navicat创建一个存储过程   (1):先选择某个数据库中的函
  • 打开SQL Server 2005的管理工具,选中需要创建存储过程的数据库,找到“可编程性”,展开后可以看到“存储过程”。右键点击它,选择“新建存储过程”,右侧的编辑窗口打开了,里面装着微软自动生成的SQL Server创建...
  • 为存储过程中的参数,在创建存储过程时也可以不指定参数。 data_type 为参数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。 VARYING 只适用于游标参数,指定为输出参数支持...
  • 创建存储过程

    2013-03-07 22:39:49
    几乎任何可写成批处理的 Transact-SQL 代码都可用于创建存储过程。 2、存储过程的设计规则 存储过程的设计规则包括: CREATE PROCEDURE 定义本身可包括除下列 CREATE 语句以外的任何数量和类型的 SQL 语句,...
  • Oracle创建存储过程

    2019-05-10 19:43:00
    存储过程:  存储过程是在oracle中存取完成特定业务逻辑的代码块。... 创建存储过程的语法:  create [or replace ] procedure 存储过程的名称[(参数名 [in/out/ inout ] 参数类型,参数名 ....)]is/as ...
  • 第一步:连接数据库后,在“object”窗口中找到“procedures”目录,在该目录上点击右键,选择“new”菜单创建存储过程。       创建后的界面,该存储过程是没有参数的。    第二步:编写...
  • SQL创建存储过程

    2019-04-26 07:05:51
    创建存储过程sppbConvertStringToTable,实现数据的拆分,使以下代码得以正常运行,运行结果如下图 构建测试数据 SELECT uGuid='A',sOrderNO='AAA',sWorkerNo='001,002,003' INTO #TEMP INSERT INTO #TEMP VALUES('...
  • MySQL创建存储过程

    2018-10-07 19:19:13
    在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程 存储过程 就是一条或多条SQL语句的集合...创建存储过程 使用CREATE PROCEDURE语句 CREATE PROCEDURE sp_name([proc_parameter]) [ch...
  • 以下是我在创建存储过程的方法,记录下来: 创建存储过程及调试 -- 此方法使用到我上一篇博客里的跨库更新,如有疑问可以查看我的上一篇博客 CREATE PROCEDURE `pro_remind_month`(i_id int, OUT o_result IN
  • use TS go if OBJECT_ID('MYPRO','p') is not null drop procedure MYPRO create procedure MYPRO as  select * from dbo.HAOYOUFENLEI  execute dbo.MYPRO ... select * from HAOY
  • .net创建存储过程函数

    2011-01-21 15:06:58
    .net创建存储过程函数, 注意只是文档,不是代码!!
  • mysql创建存储过程

    2019-05-18 14:51:34
    由于是一次性的工作,故写了个存储过程来代替代码程序初始化 创建及执行过程记录如下: MySQL [XXX_YYY]>delimiter $$ MySQL [XXX_YYY]>CREATE PROCEDURE `updateShopItemXXSkuIdV2`() ->BEGIN ...
  • 使用MysqlScript,创建mysql存储过程代码如下: public void AddProceduce() { using (var Conn = new MySqlConnection(connectMysql)) { try { Conn.Open(); Console.WriteLin
  • 特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时,要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以...
  • MySql中创建存储过程

    2015-09-14 20:30:10
    MySql中创建存储过程 分类: Java 2014-05-04 10:31 5336人阅读 评论(1) 收藏 举报 MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是...
  • Oracle创建存储过程实例

    千次阅读 2018-04-24 23:15:05
    认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中...
  • 简介 有些数据库 ,如Microsoft 的SQL Server 2005,使用Transact-Structured Query Language (T-SQL)来插入、修改...存储过程就是这样一个例子。另一个例子是用户定义函数(UDF) ,我们将在步骤 9中详细地讨论该结...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,471
精华内容 2,588
关键字:

创建存储过程代码