以syscursor
爲例進行說明。有人可以給我一個關於如何以及何時應該在oracle中使用syscursor的解釋嗎?
什麼時候在plsql過程中使用syscursor?我已經瀏覽了網站,但沒有得到如何以及何時使用這個。
以syscursor
爲例進行說明。有人可以給我一個關於如何以及何時應該在oracle中使用syscursor的解釋嗎?
什麼時候在plsql過程中使用syscursor?我已經瀏覽了網站,但沒有得到如何以及何時使用這個。
SYS_REFCURSOR是使用PL/SQL程序返回記錄集。
示例 - 讓我們得到所有表的細節對於一個給定的模式,並通過SYS_REFCURSOR
CREATE OR REPLACE PROCEDURE GET_TABLE_DETAILS(schemaName IN VARCHAR2,
table_details OUT SYS_REFCURSOR) IS
BEGIN
OPEN table_details FOR
select table_name, column_name, data_type from ALL_TAB_COLUMNS where OWNER = schemaName;
END GET_TABLE_DETAILS;
回到這裏table_details輸出參數將包含選擇查詢的結果數據,可以如下檢索。
DECLARE
table_details_cursor SYS_REFCURSOR;
tab_name ALL_TAB_COLUMNS.table_name%TYPE;
col_name ALL_TAB_COLUMNS.column_name%TYPE;
data_type ALL_TAB_COLUMNS.data_type%TYPE;
BEGIN
GET_TABLE_DETAILS (schemaName => 'DUMMY',
table_details => table_details_cursor);
LOOP
FETCH table_details_cursor
INTO tab_name, col_name, data_type;
EXIT WHEN table_details_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(tab_name || ' | ' || col_name || ' | ' || data_type);
END LOOP;
CLOSE table_details_cursor;
END;
但是,您需要通過詳細解釋Oracle文檔獲取 - Oracle - Cursors Documenatation
據我所知在Oracle中沒有什麼像「syscursor」。可能是你指的SYS_REFCURSOR
下面的網址應該可以幫助你理解如何以及何時使用它。
https://oracle-base.com/articles/misc/using-ref-cursors-to-return-recordsets
實際上,SYS_REFCURSOR只是數據類型RefCursor的別名。 RefCursor的值是一個「光標」。 –
有文檔中涉及到遊標一整章:https://docs.oracle.com/database/121 /LNPLS/static.htm#LNPLS00602網上有很多文章:http://www.oracle.com/technetwork/issue-archive/2013/13-mar/o23plsql-1906474.html我投票結束這個問題爲太寬泛。 – krokodilko
[Alternate of sys \ _refcursor]可能重複(http://stackoverflow.com/questions/35503839/alternate-of-sys-refcursor) – Shine
@krokodilko:謝謝 – Shine