當前位置:首頁 » 存儲配置 » c存儲過程結果集

c存儲過程結果集

發布時間: 2025-04-12 08:29:50

存儲過程如何把一個結果集放在一張表裡面並返回來

結果集有必要放在表裡面返回來,直接返回遊標就可以了,結果集也可以看作是張表的。

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

希望對你有幫助!

Ⅱ 幫忙寫個oracle 存儲過程,可以返回表的所有列的結果集

與SQL Server的存儲過程和函數均可以返回結果集不同的是,PL/SQL的存儲過程和函數均不直接提供返回數據集的方法,但可以通過返回類型對象來實現返回數據集的效果。具體思路為:
(1)創建包頭,在其中聲明類型和存儲過程,類型應該引用游標;
(2)創建包體,定義存儲過程,執行查詢,將查詢得到的結果集以游標句柄的形式返回。
說明:游標分為顯示游標和隱式游標,任何查詢結果默認都提供隱式游標,當前方案的重點在於使用游標取得查詢結果的句柄,由於游標被引用為類型,通過返回類型,即等效於(並不等同)返回數據集。

具體的案例如下:
--創建包頭
create or replace package mypackage1
as
--聲明類型,並引用游標
type cursorType is ref cursor;
--聲明存儲過程,兩個輸入參數,一個輸出參數,輸出遊標類型數據
procere prcGetGlobalAddress
(
cur in out mypackage1.cursorType --輸出參數,數據類型為引用游標的類型
);
end mypackage1;

--創建包體
create or replace package body mypackage1
as
--定義存儲過程
procere prcGetGlobalAddress
(
cur in out mypackage1.cursorType
)
as
begin
--返回得到分頁查詢結果集的游標句柄
open cur for
select * from mytable;
end prcGetGlobalAddress;

end mypackage1;

Ⅲ oracle 存儲過程返回結果集怎麼實現用java如何調用這個存儲過程比如表scott下的emp表

1:首先你需要創建一個包,並定義你返回的游標的類型、存儲過程

create or replace package TEST_PKG is

type cur_emp is REF CURSOR;

procere test_proc (emps out cur_emp);

end TEST_PKG;

2:然後你再創建包體

create or replace package body TEST_PKG is

procere test_proc (emps out cur_emp)
as
begin
open emps for select * from emp;
end test_proc;
end TEST_PKG ;

3,通過JAVA調用

cstmt = conn.prepareCall("{call TEST_PKG .test_proc (?)}");
cstmt.registerOutParameter(1, OracleTypes.CURSOR);
cstmt.execute();

//獲得結果集
rs = (ResultSet)cstmt.getObject(4);
while(rs.next()){......}

注意:游標類型需要你在連接未關閉之前進行本地持久化,不然連接關閉了就無法解析了哦^-^,如果還不懂可以聯系我!

Ⅳ sqlserver如何從存儲過程獲取結果集

1. 把結果集寫入結構相同的臨時表中。 a).創建一個臨時表#temp,和存儲過程的結果集結構一致。 b).把結果集插入臨時表中:INSERT INTO #TEMP EXEC PROC c).從臨時表中搜值: select * from #temp d).現在就可以從#temp表中取值進行隨意操作了。

Ⅳ 如何返回sqlserver 中存儲過程的select的結果集

有兩種方式啊 可以直接在 存儲過程中 select ,執行存儲過程 後會有那個結果列表查詢出來
或者建一張臨時表 insert into #t1 EXEC 過程名

熱點內容
php參數函數 發布:2025-04-26 09:24:34 瀏覽:673
搭建HTTPS代理伺服器 發布:2025-04-26 09:24:21 瀏覽:801
nginx禁止訪問文件 發布:2025-04-26 09:23:44 瀏覽:807
什麼是帶存儲功能的計算器 發布:2025-04-26 09:23:44 瀏覽:789
黑龍江省dns伺服器地址雲空間 發布:2025-04-26 09:19:03 瀏覽:534
程序編譯時閃退 發布:2025-04-26 09:12:27 瀏覽:889
屏幕熄滅的時間腳本還會運行嗎 發布:2025-04-26 09:12:23 瀏覽:1000
go流媒體伺服器搭建 發布:2025-04-26 09:11:26 瀏覽:128
android電源鎖 發布:2025-04-26 09:07:14 瀏覽:866
超時代視頻加密注冊機 發布:2025-04-26 08:55:37 瀏覽:511