常用DB存储过程返回结果集的方法

/*
    MySql
    直接select就可以了(也可以多个,即多个结果集)。
 */
DELIMITER //
CREATE PROCEDURE pro_01()
BEGIN
    SELECT * FROM [TABLE_NAME];
END //
DELIMITER ;
/*
    Oracle
    游标形式(通过定义一个包)
 */
CREATE OR REPLACE PACKAGE globalPkg 
AS
    TYPE cur_result IS REF CURSOR;
END globalPkg;
-- 下面在存储中就可以应用这个包返回数据
CREATE OR REPLACE pro_01(
    rs       out globalPkg.cur_result
AS
BEGIN
    OPEN rs FOR
    SELECT * FROM [TABLE_NAME];
END;
-- 有多个结果就定义多个out变量,类型一样,以逗号分隔开就可以。
-- [,rs1    out globalPkg.cur_result]
/* 
    SqlServer 
    可以直接select,同MySql
 */
/* DB2 */
CREATE OR REPLACE pro_01()
DYNAMIC RESULT SETS 1[N]  /*定义返回结果集个数*/
BEGIN
    BEGIN
        DECLARE rs CURSOR WITH HOLD WITH RETURN TO CLIENT FOR
        SELECT * FROM [TABLE_NAME];
        /*增加一个结果集, 前提要在上面定义[DYNAMIC RESULT SETS 2]*/
        DECLARE rs1 CURSOR WITH HOLD WITH RETURN TO CLIENT FOR
        SELECT * FROM [TABLE_NAME];
        -- 最后记得打开CURSOR,统一放在后面打开。
        OPEN rs;
        [OPEN rs1;]
    END;
END;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
存储过程的开发调试是一项重要而复杂的任务,需要遵循一些最佳实践和技巧。首先,正确设定游标的返回类型是一项关键的实践。这样可以确保在存储过程执行后,游标返回的结果能够被正确处理和使用。其次,异常处理也是一个需要特别注意的方面。在存储过程中,合理地处理异常可以保证程序的稳定性和可靠性。此外,合理使用临时表是一种常用的技巧。通过使用临时表,我们能够在存储过程中暂时存储数据,用于后续的处理和操作。最后,寻找并重新绑定非法的存储过程也是一个重要的实践。在开发过程中,我们经常会遇到存储过程无法正常执行的情况,这时就需要进行调试并重新绑定存储过程。 综上所述,存储过程的开发调试需要注意实践和技巧,包括正确设定游标的返回类型、异常处理、合理使用临时表和寻找并重新绑定非法的存储过程。这些方法和步骤将有助于提高存储过程的开发效率和准确性。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [DB2存储过程开发最佳实践](https://download.csdn.net/download/weixin_38714637/15535245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Java企业报表管理系统源码](https://download.csdn.net/download/m0_55416028/88269629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值