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

如题所述

第1个回答  推荐于2018-04-20
结果集有必要放在表里面返回来,直接返回游标就可以了,结果集也可以看作是张表的。

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 procedure 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中可以直接返回结果。

希望对你有帮助!本回答被提问者和网友采纳
第2个回答  2012-04-17
insert into a select * from b
select * from a

存储过程如何把一个结果集放在一张表里面并返回来
结果集有必要放在表里面返回来,直接返回游标就可以了,结果集也可以看作是张表的。DB2的的解决方案:1.声明存储过程的时候,在声明之后添加 RESULT SETS 1,表示返回一个结果集,示例如下:CREATE PROCEDURE YOUPRO(IN P_UserId INTEGER)LANGUAGE SQL RESULT SETS 1 --- -- SQL 存储过程(获取用户信...

如何把一个存储过程返回的结果集存入到一个临时表
1 先把临时表创建好,用insert into #tmp exec myProc 2 不建临时表,用openrowset select * into # from openrowset('SQLOLEDB','AVAST';'sa';'lichao','exec Northwind..myProc')--存储过程钱加上数据库名

怎么样执行一个存储过程,将返回来地结果插入到表中
1.按照返回的结果集结构先创建表,然后运行存储过程,插入结果到表中;SQL codecreate table tb()insert tb exec 存出過程 2.不指定表结构,直接插入到临时表中

如何创建MySQL存储过程可以返回一个表类型的数据
首先需要知道“另一个存储过程”的结果集的所有列的类型。假设“另一个存储过程”的名字是sp1,没有参数,返回的结果集共3列,全部为int型,那么“存储过程”里添加一个与结果集列数相同的临时表或表变量用于接收“另一个存储过程”的结果集 如下 CREATE PROCEDURE sp2 AS DECLARE @t table(a int,...

oracle存储过程中循环查询返回多个结果集怎么集合在一起?
返回结果集合成什么样?一条记录直接输出?你可以把返回的结果插到一张表里,然后去看不就行了吗?你可以把每次查询,改成每次插入一张表里,回过头再看结果集

帮忙写个oracle 存储过程,可以返回表的所有列的结果集
);end mypackage1;--创建包体 create or replace package body mypackage1 as --定义存储过程 procedure prcGetGlobalAddress (cur in out mypackage1.cursorType )as begin --返回得到分页查询结果集的游标句柄 open cur for select * from mytable;end prcGetGlobalAddress;end mypackage1;...

oracle存储过程中循环查询返回多个结果集怎么集合在一起?_
利用游标将查询结果插入到一个表里!或者存储到定义的数组中!

如何调用带参的存储过程
RunProcedure这个方法,调用存储过程,storedProcName 存储过程名 parameters 存储过程参数列表 tableName 这个表名指的是,你的存储过程对某一张表做了数据的保存或修改,然后通过这个参数来把这个表的数据查出来,fill方法的作用就是 select “tableName”这个表,然后把结果集放入DataSet中并返回。

ORACLE 存储过程怎么返回临时表结果集
输出结果:1,1 PL\/SQL procedure successfully completed 你的那个ORA-01031: insufficient privileges,是权限不足的问题。SQL代码:CREATE GLOBAL TEMPORARY TABLE REPROTTEST(ID NUMBER,ANAME VARCHAR2(20)) ON COMMIT DELETE ROWS;create or replace procedure report_month_responsibility(o_cur out sys...

在存储过程中,为了在一个结果集的记录中进行循环,除了用游标还能用其...
临时表 或表变量都可以 例如:sqlserver数据库,你的结果集为 T_Table if object_id('tempdb..#tmp') > 0 drop table #tmp declare @ID int select identity(int,1,1) as ID,* from T_Table select @ID = 1 while Exists(select * from #tmp)begin select @变量 = 字段 from #tmp ...

相似回答