`

My Sql存储过程、游标实例

 
阅读更多
DELIMITER $$ 
DROP PROCEDURE IF EXISTS genChannelCategorySkuRelation $$
CREATE PROCEDURE genChannelCategoryRelation ()
BEGIN
 DECLARE  no_more_category, channel_id ,create_user_id , category_id_temp INT DEFAULT 0;
 DECLARE  categorys CURSOR FOR   SELECT DISTINCT category_id FROM erp$pro$category  WHERE STATUS = 1 ;  /*First: Delcare a cursor,首先这里对游标进行定义*/
 DECLARE  CONTINUE HANDLER FOR NOT FOUND  SET  no_more_category = 1; /*when "not found" occur,just continue,这个是个条件处理,针对NOT FOUND的条件*/
 SET channel_id = 15;    /*替换成真实的渠道ID*/
 SET create_user_id= 141;  /*替换成用户Id*/
 DELETE FROM erp$pro$category_channel_relation;

 OPEN  categorys; /*Second: Open the cursor 接着使用OPEN打开游标*/
 
 
 REPEAT
 
 FETCH  categorys INTO category_id_temp; /*Third: now you can Fetch the row 把第一行数据写入变量中,游标也随之指向了记录的第一行*/
 SELECT category_id_temp;
 INSERT  INTO erp$pro$category_channel_relation(channel_id,category_id,create_by, create_time,last_update_by,last_update_time,STATUS )
 VALUES  (channel_id,category_id_temp, create_user_id, NOW(),create_user_id,NOW(),1);

 UNTIL  no_more_category = 1
 
 END REPEAT;
 
 CLOSE  categorys;  /*Finally: cursor need be closed 用完后记得用CLOSE把资源释放掉*/
 
END $$  

DELIMITER ;

CALL genChannelCategoryRelation ();

 

参考:http://blog.csdn.net/rdarda/article/details/7881648/

分享到:
评论

相关推荐

    Oracle存储过程实例使用显示游标

    在本例中,“Oracle存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...

    SQL工作笔记-达梦7存储过程中游标的使用(for循环 IF等)

    在SQL编程中,存储过程是预编译的SQL语句集合,它们被封装起来以便...这些知识对于开发和维护SQL存储过程至关重要,特别是在处理复杂业务逻辑和数据交互时。通过掌握这些技巧,开发者能够更高效地管理数据库中的数据。

    游标小实例

    本文将深入解析一个基于SQL Server的游标小实例,旨在展示如何利用游标进行数据处理和错误检查。 ### 游标小实例分析 #### SQL Server 游标基础 游标允许我们在存储过程或批处理中逐行处理查询结果。在使用游标前...

    Oracle PL SQL存储过程以及函数编

    本篇文章将深入探讨Oracle PL/SQL存储过程和函数的编写,帮助你理解和掌握这一核心技能。 一、存储过程的概念与优点 存储过程是一组预先编译好的SQL和PL/SQL语句,存储在数据库服务器上。当需要执行这些语句时,只...

    DB2存储过程入门实例

    DB2存储过程是数据库管理中一种强大的编程工具,它允许用户在数据库级别封装复杂的SQL语句和控制流逻辑。在本“DB2存储过程入门实例”文档中,我们将深入探讨DB2存储过程的基础知识,包括其定义、创建、调用以及优化...

    MySQL存储过程的异常处理方法

    本实例展示了如何在MySQL存储过程中实现异常处理,以捕获并处理可能出现的错误。 首先,我们注意到在创建存储过程`myProc`时,使用了`delimiter $$`来改变MySQL客户端的语句分隔符,这是为了在存储过程中使用多个...

    oracle存储过程(语法实例).pdf

    存储过程是由SQL和PL/SQL语句组合而成的程序,它可以包含声明、变量、条件控制、循环结构等。通过存储过程,商业规则和业务逻辑被集中存储在数据库中,便于多应用程序共享,减少了网络通信和数据处理的开销。 2. *...

    oracle存储过程学习经典[语法+实例+调用]

    **存储过程**是在数据库中预先定义并编译好的一系列SQL语句或PL/SQL代码块,它可以接受输入参数,输出参数,并能实现复杂的业务逻辑处理。通过存储过程,可以有效地提高应用程序的性能、安全性和可维护性。 #### 二...

    oracle 存储过程学习经典

    #### 十一、Oracle高效分页存储过程实例 - **实现思路**: 使用游标结合ROWNUM进行分页查询。 - **示例代码**: 设计一个存储过程,接收页码和每页记录数作为参数,返回对应页面的数据。 #### 十二、结论 - **总结*...

    Oracle_PLSQL_存储过程

    ### Oracle PL/SQL 存储过程详解 #### Oracle存储过程基础知识 存储过程是数据库中预编译好的一段SQL或PL/SQL代码,它可以接受输入参数并返回结果,从而实现复杂的功能逻辑。存储过程的主要优势包括提高性能(因为...

    Oracle存储过程学习经典[语法+实例+调用].

    #### 七、Oracle高效分页存储过程实例 - **实现思路**: 使用ROWNUM和游标来实现高效的分页查询。 - **示例**: ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( p_page IN NUMBER, p_size IN NUMBER, ...

    Java调用oracle存储过程输出自定义对象或二维表

    调用存储过程的关键在于`CallableStatement`接口,它是`PreparedStatement`的子类,专门用于执行SQL存储过程。以下是一个基本示例: ```java String sql = "{call my_package.my_procedure(?,?,?)}"; // 替换为实际...

    oracle存储过程三部曲

    在"oracle存储过程学习经典[语法+实例+调用].pdf"文档中,读者可能能深入学习到更多实战案例,包括但不限于事务管理、异常处理、动态SQL、游标的使用等。这些实例将帮助开发者更好地理解和应用存储过程解决实际问题...

    Oracle-procedure.rar_oracle_oracle procedure_oracle 存储过程

    1. **游标**:存储过程中可以使用游标处理多行记录,实现复杂的数据操作。 2. **异常处理**:通过`BEGIN...EXCEPTION...END`结构,可以捕获并处理运行时错误。 3. **返回值**:除了输出参数,存储过程还可以定义一个...

Global site tag (gtag.js) - Google Analytics