程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫的DML語句功能介紹

Oracle數據庫的DML語句功能介紹

編輯:Oracle數據庫基礎

以下的文章主要討論的是各種用於訪問Oracle數據庫的DML語句的結果的相關內容的介紹。其中包括事務控制語句 、顯式游標 、使用游標 。等相關內容的介紹,以下就是文章的具體內容的介紹。

DML語句的結果

當執行一條DML語句後,DML語句的結果保存在四個游標屬性中,這些屬性用於控制程序流程或者了解程序的狀態。當運行DML語句時,PL/SQL打開一個內建游標並處理結果,游標是維護查詢結果的內存中的一個區域,游標在運行DML語句時打開,完成後關閉。

隱式游標只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三個屬性.SQL%FOUND,SQL%NOTFOUND是布爾值,SQL%ROWCOUNT是整數值。SQL%FOUND和SQL%NOTFOUND

在執行任何DML語句前SQL%FOUND和SQL%NOTFOUND的值都是NULL,在執行DML語句後,SQL%FOUND的屬性值將是:

. TRUE :INSERT

. TRUE : DELETE和UPDATE,至少有一行被DELETE或UPDATE.

. TRUE :SELECT INTO至少返回一行

當SQL%FOUND為TRUE時,SQL%NOTFOUND為FALSE。

SQL%ROWCOUNT

在訪問Oracle數據庫中執行任何DML語句之前,SQL%ROWCOUNT的值都是NULL,對於SELECT INTO語句,如果執行成功,SQL%ROWCOUNT的值為1,如果沒有成功,SQL%ROWCOUNT的值為0,同時產生一個異常NO_DATA_FOUND.

SQL%ISOPEN

SQL%ISOPEN是一個布爾值,如果游標打開,則為TRUE, 如果游標關閉,則為FALSE.對於隱式游標而言SQL%ISOPEN總是FALSE,這是因為隱式游標在DML語句執行時打開,結束時就立即關閉。

事務控制語句

事務是一個工作的邏輯單元可以包括一個或多個DML語句,事物控制幫助用戶保證數據的一致性。如果事務控制邏輯單元中的任何一個DML語句失敗,那麼整個事務都將回滾,在PL/SQL中用戶可以明確地使用COMMIT、ROLLBACK、SAVEPOINT以及SET TRANSACTION語句。

COMMIT語句終止事務,永久保存數據庫的變化,同時釋放所有LOCK,ROLLBACK終止現行事務釋放所有LOCK,但不保存數據庫的任何變化,SAVEPOINT用於設置中間點,當事務調用過多的訪問Oracle數據庫操作時,中間點是非常有用的,SET TRANSACTION用於設置事務屬性,比如read-write和隔離級等。

顯式游標

當查詢返回結果超過一行時,就需要一個顯式游標,此時用戶不能使用select into語句。PL/SQL管理隱式游標,當查詢開始時隱式游標打開,查詢結束時隱式游標自動關閉。顯式游標在PL/SQL塊的聲明部分聲明,在執行部分或異常處理部分打開,取數據,關閉。

使用游標

這裡要做一個聲明,我們所說的游標通常是指顯式游標,因此從現在起沒有特別指明的情況,我們所說的游標都是指顯式游標。要在程序中使用游標,必須首先聲明游標。

聲明游標

語法:

  1. CURSOR cursor_name IS select_statement;  

在PL/SQL中游標名是一個未聲明變量,不能給游標名賦值或用於表達式中。

以上的相關內容就是對訪問Oracle數據庫的DML語句的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved