当前位置:首页 » 存储配置 » 存储过程返回结果集

存储过程返回结果集

发布时间: 2022-01-23 15:49:43

sql存储过程与结果集

直接这么写:
INSERT INTO TABLE1(field1,field2,...)
SELECT value1,value2,... from TABLE2 WHERE ...

存储过程最后直接写一个select 语句,外界就可以拿到这个结果集了,不需要用OUTPUT参数

Ⅱ MYSQL如何把存储过程所返回的结果集插入到表

从存储过程返回表类型的值也有二种:
1.存储过程使用浮标参数,即同时指定CURSOR VARYING OUTPUT项.调用者可以使用while及fetch循环遍历该浮标.
2.直接将存储过程返回的结果集插入到表中,即使用insert into 表名 exec 存储过程.此种方式中注意存储过程返回的结果集列与insert的列要完全对应,可以在insert中指定列名来保证对应关系.
------------------------------------------------------------------------------测试:------------------------------------------------------------------------------
----建立测试用的临时表
create table #tmp (colx int,coly int)
insert into #tmp values(1,2)
insert into #tmp values(2,3)
insert into #tmp values(3,4)
select * from #tmpGO----创建返回游标的存储过程
create proc sp_c @cur CURSOR VARYING OUTPUTASbeginset @cur = CURSOR for select colx from #tmp
open @cur /*该过程返回游标,该游标为colx列的查询结果*/endGO----创建返回表的存储过程
create proc sp_dasselect coly from #tmp /*该过程返回coly列的查询结果*/go----创建用于调用以上二个存储过程的存储过程
create proc sp_easbegindeclare @x int
declare @cur cursor
----接收游标,并遍历游标
EXEC sp_c @cur OUTPUT
fetch next from @cur into @x
while (@@FETCH_STATUS = 0)beginprint @xfetch next from @cur into @xENDclose @curdeallocate @cur
----将存储过程返回的列值再重新插入源表中

Ⅲ Oracle如何看到存储过程返回的结果集

自定义个变量来获取返回结果,然后用个循环把结果打印出来

Ⅳ 存储过程这样写执行后能返回一个数组结果集呢

在包里定义一个Type,类似于下面的

Type Public_Rec IS Record( --Pubilc_Rec类型名字,你可以随意
id XXX.id%TYPE, -- id相当于map里的key,类型与XXX表里的id字段一致
name XXX.name%TYPE
);
你可以根据自己的需要丰满上面的语句。
使用的时候,定义变量
rec_ Public_Rec;
select id, name into rec_ from XXX;
@SELECT_STRING=concat("select * into rec_ from student");

Ⅳ 我要创建一个oracle存储过程,能返回查询的结果集,然后可以调用这个结果集,求大侠指教

项目、版本多么?
提供思路:
创建一个游标,将“项目”、“版本”先查出来赋给查询语句,然后将查询结果插入临时表。

Ⅵ 如何对存储过程返回的结果集进行分页

这个在数据库端比较好,你现在得结果集是全部的6w数据,不太好处理,不如修改下存储过程,多增加几个参数。增加个第几页,每页显示数目。
这样直接在存储过程中通过limit(mysql),或者是top直接获取就可

Ⅶ oracle存储过程怎么返回结果集

你这不是已经写好了嘛。
外层调用程序只要声明变量mycursor并且作为参数传到emp_pro存储过程中,执行结束后就可以使用了。

Ⅷ 存储过程如何把一个结果集放在一张表里面并返回来

结果集有必要放在表里面返回来,直接返回游标就可以了,结果集也可以看作是张表的。

DB2的的解决方案:
1.声明存储过程的时候,在声明之后添加 RESULT SETS 1,表示返回一个结果集,示例如下:
CREATE PROCEDURE YOUPRO(IN P_UserId INTEGER)
LANGUAGE SQL
RESULT SETS 1
------------------------------------------------------------------------
-- SQL 存储过程(获取用户信息)
------------------------------------------------------------------------
P1: BEGIN
--声明会使用到的参数
.... ....
... .....
2.在存储过程中声明一个游标,然后返回,示例如下:
DECLARE C1 CURSOR WITH RETURN FOR SELECT *FROM TABLE;
OPEN C1;

Oracle的解决方案:
1.先定义一个包,示例如下:
create or replace package CursorPackage as
type my_cursor is ref cursor;
end CursorPackage;
2.在存储过程返回参数使用这个定义的参数,示例如下:
create or replace procere YOUPRO(P_UserId IN NUMBER, C_Return OUT CursorPackage.my_cursor)IS ... ... ..
3.存储过程中,给返回参数赋值,示例如下:
OPEN C_Return FOR SELECT * FROM TABLE;

Sql Server的解决方案

直接返回SELECT * FROM TABLE,SqlServer中可以直接返回结果。

希望对你有帮助!

Ⅸ sql中如何通过存储过程返回结果集

引用
4

oraclefans_
的回复:想麻烦了。。你直接返回游标就是一个结果集合。。CREATE
OR
REPLACE
PROCEDURE
USP_RETN_VAL(
RETN_VAL_CUR
OUT
sys_refcursor)ISBEGIN
OPEN
RETN_VAL_CUR
FOR
SELECT
*
FROM
TBL1;END;调用declare
cur
sys_refcurso……谢谢
但是我是想执行一个存储过程后,直接返回表里所有数据,不要再去操作游标。

热点内容
linux网卡设置网关 发布:2024-09-21 01:34:52 浏览:991
电脑虚拟缓存 发布:2024-09-21 01:24:11 浏览:98
ava编译器怎么样 发布:2024-09-21 01:22:36 浏览:655
国家反诈中心app登录密码是什么 发布:2024-09-21 01:06:42 浏览:138
华为云服务器公网ip 发布:2024-09-21 01:06:31 浏览:346
web服务器面板搭建 发布:2024-09-21 00:44:23 浏览:543
ubuntu交叉编译链 发布:2024-09-21 00:39:36 浏览:14
优酷缓存视频导出 发布:2024-09-21 00:31:37 浏览:874
有线电视的二级密码是多少 发布:2024-09-21 00:31:28 浏览:779
安卓i管家在哪里 发布:2024-09-21 00:29:05 浏览:692