回覆列表
  • 1 # 使用者3296806220335

    oracle遊標是資料庫中一個命名的工作區,當遊標被聲明後,他就與一個固定的SQL想關聯,在編譯時刻是已知的,是靜態的.它永遠指向一個相同的查詢工作區.

    遊標變數可以在執行時刻與不同的SQL語句關聯,在執行時可以取不同的SQL語句.它可以引用不同的工作區.

    oracle遊標和遊標變數是不能相互代替的.

    如何定義遊標型別

    TYPE ref_type_name IS REF CURSOR [RETURN return_type];

    宣告遊標變數

    cursor_name ref_type_name;

    ref_type_name 是後面宣告遊標變數時要用到的我們的遊標型別(自定義遊標型別,即CURSOR是系統預設的,ref_type_name是我們定義的 );return_type代表資料庫表中的一行,或一個記錄型別

    TYPE ref_type_name IS REF CURSOR RETURN employee%TYPE

    RETURN 是可選的,如果有是強型別,可以減少錯誤,如果沒有return是弱引用,有較好的靈活性.

    不能在包頭裡面宣告遊標變數,注意,但可以定義遊標型別,要注意這二者的區別.

    可以宣告遊標變數作為函式或過程的形式引數.

    %TYPE一個列型別

    %ROWTYPE行型別

    控制oracle遊標變數

    OPEN-FOR(開啟遊標變數,與多行查詢連線起來) FETCH(從結果集中取行資料),close(關閉遊標變數)

    BULK COLLECT子句將遊標變數中的行一次性提取到一個集合中.

  • 中秋節和大豐收的關聯?
  • 酒場規矩有什麼?