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存储过程实例使用显示游标”着重展示了如何在存储过程中调用函数,并通过游标来处理和更新数据。 首先,我们需要了解存储过程的基本结构。一个存储过程通常包含以下部分: 1. **声明部分**:在...
在SQL编程中,存储过程是预编译的SQL语句集合,它们被封装起来以便...这些知识对于开发和维护SQL存储过程至关重要,特别是在处理复杂业务逻辑和数据交互时。通过掌握这些技巧,开发者能够更高效地管理数据库中的数据。
本文将深入解析一个基于SQL Server的游标小实例,旨在展示如何利用游标进行数据处理和错误检查。 ### 游标小实例分析 #### SQL Server 游标基础 游标允许我们在存储过程或批处理中逐行处理查询结果。在使用游标前...
本篇文章将深入探讨Oracle PL/SQL存储过程和函数的编写,帮助你理解和掌握这一核心技能。 一、存储过程的概念与优点 存储过程是一组预先编译好的SQL和PL/SQL语句,存储在数据库服务器上。当需要执行这些语句时,只...
DB2存储过程是数据库管理中一种强大的编程工具,它允许用户在数据库级别封装复杂的SQL语句和控制流逻辑。在本“DB2存储过程入门实例”文档中,我们将深入探讨DB2存储过程的基础知识,包括其定义、创建、调用以及优化...
本实例展示了如何在MySQL存储过程中实现异常处理,以捕获并处理可能出现的错误。 首先,我们注意到在创建存储过程`myProc`时,使用了`delimiter $$`来改变MySQL客户端的语句分隔符,这是为了在存储过程中使用多个...
存储过程是由SQL和PL/SQL语句组合而成的程序,它可以包含声明、变量、条件控制、循环结构等。通过存储过程,商业规则和业务逻辑被集中存储在数据库中,便于多应用程序共享,减少了网络通信和数据处理的开销。 2. *...
**存储过程**是在数据库中预先定义并编译好的一系列SQL语句或PL/SQL代码块,它可以接受输入参数,输出参数,并能实现复杂的业务逻辑处理。通过存储过程,可以有效地提高应用程序的性能、安全性和可维护性。 #### 二...
#### 十一、Oracle高效分页存储过程实例 - **实现思路**: 使用游标结合ROWNUM进行分页查询。 - **示例代码**: 设计一个存储过程,接收页码和每页记录数作为参数,返回对应页面的数据。 #### 十二、结论 - **总结*...
### Oracle PL/SQL 存储过程详解 #### Oracle存储过程基础知识 存储过程是数据库中预编译好的一段SQL或PL/SQL代码,它可以接受输入参数并返回结果,从而实现复杂的功能逻辑。存储过程的主要优势包括提高性能(因为...
#### 七、Oracle高效分页存储过程实例 - **实现思路**: 使用ROWNUM和游标来实现高效的分页查询。 - **示例**: ```sql CREATE OR REPLACE PROCEDURE get_paged_data ( p_page IN NUMBER, p_size IN NUMBER, ...
调用存储过程的关键在于`CallableStatement`接口,它是`PreparedStatement`的子类,专门用于执行SQL存储过程。以下是一个基本示例: ```java String sql = "{call my_package.my_procedure(?,?,?)}"; // 替换为实际...
在"oracle存储过程学习经典[语法+实例+调用].pdf"文档中,读者可能能深入学习到更多实战案例,包括但不限于事务管理、异常处理、动态SQL、游标的使用等。这些实例将帮助开发者更好地理解和应用存储过程解决实际问题...
1. **游标**:存储过程中可以使用游标处理多行记录,实现复杂的数据操作。 2. **异常处理**:通过`BEGIN...EXCEPTION...END`结构,可以捕获并处理运行时错误。 3. **返回值**:除了输出参数,存储过程还可以定义一个...