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

本文介绍了在不同类型的数据库(包括MySql、Oracle、SqlServer和DB2)中创建存储过程的方法,重点展示了如何通过存储过程从指定表中选择数据。对于每种数据库,都提供了具体的实现方式,并解释了其特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
    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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值