游標的概念
游標實際上是一種能夠從包括多條資料記錄的結果集中每次提取的機制;主要意義就是遍歷結果集;
sql的游標是一種臨時的資料庫物件,既可以用來存放在資料庫表中的資料行副本,也可以指向儲存在資料庫中資料行的指標。游標提供了在逐行的基礎上操作表中資料的方法;
游標常見的用途是儲存查詢結果,以便以後使用。游標的結果集是由select語句產生的,如果處理過程需要重複使用乙個記錄,那麼建立一次游標二重複使用若干次。
游標特點
游標的分類
游標分為顯式游標和隱含游標兩種
顯示游標分為兩種:靜態游標和動態游標。
其中靜態游標指的是宣告同時對其指定sql。而動態游標是指宣告後,在開啟時才指定;
顯示游標適用於處理select語句返回的多行資料,為了處理select語句返回的多資料,我們開發人員可以使用顯示游標。
使用顯示游標可以分為四階段
顯示游標的屬性
如何使用顯示游標
cursor cursor_name(引數)
is select_statement;
帶參游標
游標for迴圈:
動態游標
當時用顯示游標時,需要在定義部分指定其所對應的靜態select語句,而當使動態游標時,開發人員可以在**開啟游標變數時指定其所對應的select語句。
儲存過程返回乙個游標,都是動態游標;
隱含游標:
觸發器概念:
觸發器是在事件發生時隱式地自動執行的pl\sql語句程式塊,不能接收引數,不能被呼叫,觸發器是指被隱含執行的儲存過程,他可以使用pl\sql進行執行
當發生特定事件(如修改表資料,登入到資料庫)時,oracle會自動執行觸發器的相**。
觸發器型別:
觸發器的組成
觸發器限制:
建立觸發器的一般語法:
行級觸發器
觸發器裡面的儲存過程
系統觸發器(主要用於登入退出使用)
-- 建立乙個登入日誌表
create
table loginlog(
loguser varchar2(
200)
, loginip varchar2(
200)
, loginfate date);
-- 建立after觸發器
create
orreplace
trigger tri_logintest
after logon on
database
begin
insert
into loginlog values
(ora_login_user,ora_client_ip_address,sysdate)
;end
;
觸發器和游標
1 觸發器 觸發時自動生成兩個表inserted和deleted 定義 類似於c 中的事件,是一種特殊的引數不用手動呼叫 語法 create trigger 觸發器名 on設定觸發器的表 after for 或 instead of 查詢語句型別 insert,delete,updata asbeg...
觸發器和游標
1 觸發器 觸發時自動生成兩個表inserted和deleted 定義 類似於c 中的事件,是一種特殊的引數不用手動呼叫 語法 create trigger 觸發器名 on設定觸發器的表 after for 或 instead of 查詢語句型別 insert,delete,updata asbeg...
觸發器和游標的用法
宣告rs為局域變數,否則第二次執行會報rs已定義的錯誤 declare s varchar max declare rs cursor local for select orgcode,exchangenum,salenum,localproductnum,otherproductnum,subsi...