存儲過程在執行時返回遊標狀態
㈠ oracle 存儲過程執行動態sql 返回結果給游標,外部程序獲得dataset結果集。
你這樣寫就可以了,ORACLE存儲過程不需要返回值,只要參數是out就代表為輸出參數了,你給它傳一個游標進去,執行完,這個游標的值就是你查詢的值了。
㈡ 關於存儲過程返回遊標的處理
對游標進行遍歷,獲得游標中的數據,存放到結果集中,
呵呵,希望能有幫助,^_^
㈢ 求助:在oracle中用存儲過程返回遊標(前先判斷游標是否有值)的問題
可以繞個彎...
先可以用select
count(*)
查詢你游標的結果集,判斷一下如果大於0
則說明有值,如果等於0就沒有值,有值就繼續執行打開游標,沒有值的話就返回
DBMS_OUTPUT.PUT_LINE('沒有返回值');
㈣ 關於存儲過程返回遊標的錯誤
光有包頭,沒有包體,包裡面有個游標,但是游戲只是聲明了一個類型,也有在包體裡面實現這個游標,在FILTER_DATA_PROCEDURE這個過程裡面打開了游標,也沒有關閉.建議你去學習了包的寫法,游標的使用方法在來好好看看你自己寫的
㈤ 如何在oracle存儲過程中返回遊標
1:首先你需要創建一個包,並定義你返回的游標的類型、存儲過程 create or replace package TEST_PKG is -- Public type declarations type cur_emp is REF CURSOR; procere test_proc (v_empno in number, emps out cur_emp); end TEST_PKG; 2:然後你再創建包體 create or replace package body TEST_PKG is procere test_proc (v_empno in number, emps out cur_emp)asbeginopen emps for select * from emp where empno=7369; end test_proc; end TEST_PKG ; 3,通過java調用 cstmt = conn.prepareCall("{call TEST_PKG .test_proc (?)}"); cstmt.registerOutParameter(1, OracleTypes.CURSOR); cstmt.execute();//獲得結果集
㈥ 存儲過程以游標方式返回結果集,在應用程序中怎麼關閉
關閉資料庫連接即可。
因為資料庫連接一旦顯式關閉,那麼這個連接進程會在伺服器端也進行強制掛起,並進入關閉的隊列,等待關閉。
--------------------------------
疑問,寫了這么多年的存儲過程了,還第一次見到存儲過程是返回遊標形式的。最好還是從你的業務入手修改程序吧。
㈦ 在存儲過程里怎麼返回動態SQL執行得到的游標
糟糕的編碼方法,無論DB是否支持。--事實上也的確不支持
sp應該成為一個黑盒子,供調用。
㈧ Pl/sql存儲過程中 游標返回值問題
看到你剛才的問題了,看看我的回答,
補充:剛測了下,如果創建的是臨時表,用create as select * from xxx,是沒有數據的
創建後再執行一次插入
DECLARE
psqlstr VARCHAR2(200);
stmp VARCHAR2(200);
tname VARCHAR2(30);
BEGIN
tname := 'temp_s1'; -- 臨時表名
stmp := 'select * from t1 where 1=1'; -- t1為源表,stmp為從源表查詢數據的sql
psqlstr := 'create global temporary table '||tname||' as '||stmp;
EXECUTE IMMEDIATE psqlstr; -- 創建成功,但是臨時表中無數據
psqlstr := 'insert into t1_temp '||stmp; -- 再插入一次數據
EXECUTE IMMEDIATE psqlstr;
END;
㈨ mysql存儲過程中能返回遊標嗎
MySQL中可以返回一個記錄集 , 比如直接 select * from test_table; ,你在程序中直接調這個存儲過程,存儲過程會返回這些記錄集到你的客戶端應用程序中。
但無法返回遊標。
㈩ 存儲過程中輸出參數為游標的時候怎麼處理
你的意思是不是要獲取到「當前用戶:user_id」這個的內容,如果是,兩個方式可以解決:
1.通過存儲過程的出參,將「當前用戶:user_id」連接串返回;
比如:
假設你的過程叫,prc_test,在參數列表中增加出參。
create or replace procere prc_test(入參 in 類型, 出參 out 類型) is
begin
-- 邏輯實現
end;
出參就是你要把內容放進去,用來傳值的變數。
2.在過程中保存一張臨時表,然後在java中查出這個臨時表中保存的數據。
定義臨時表table_temp
在過程中
insert into table_temp(msg) values ('當前用戶:' || user_id);