存儲過程










CREATE OR REPLACE PACKAGE  '' AS
type cur is ref cursor

整體的意思是“創建一個類型變量cur,它引用遊標”,除了cur外,其餘全是關鍵字。
TYPE cur:定義類型變量
is ref cursor:相當於數據類型,不過是引用遊標的數據類型。
這種變量通常用於存儲過程和函數返回結果集時使用,因爲PL/SQL不允許存儲過程或函數直接返回結果集,但可以返回類型變量,於是引用遊標的類型變量作爲輸出參數或返回值就應運而生了。


   %ROWTYPE:表示該類型爲行數據類型,存儲的時候爲一行數據,一行有很多列,相當於表中的一行數據,也可以的遊標中的一行數據。

 

   用到%ROWTYPE作用是:當查詢整行的時候(SELECT * FROM EMP;),那麼效率比每一個字段對應快。

 

    例如: v_info emp%ROWTYPE; //該類型爲emp表中的一行數據類型

               v_cinfo c_emp%ROWTYPE //該類型爲遊標c_emp中的一行數據類型

Ref cursor屬於動態cursor(直到運行時才知道這條查詢)。從技術上講,在最基本的層次靜態cursor和ref cursor是相同的。一個典型的PL/SQL光標按定義是靜態的。Ref光標正好相反,可以動態地打開,或者利用一組SQL靜態語句來打開,選擇哪種方法由邏輯確定(一個IF/THEN/ELSE代碼塊將打開一個或其它的查詢)。

發佈了41 篇原創文章 · 獲贊 5 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章