Oracle語句塊的寫法

2021-06-27 19:23:02 字數 1578 閱讀 3725

乙個完整的語句塊由三部分組成。

第一部分:declare

宣告部分,定義變數,資料型別,異常,區域性子程式等

第二部分:begin

執行部分,實現塊的功能

第三部分:exception

異常處理部分,處理程式執行過程中產生的異常

結束 end;

(1)宣告部分

宣告部分以declare開始,以begin結束。主要用於宣告變數、常量、資料型別、游標、異常處理名稱和本地(區域性)子程式定義等。

(2)執行部分

執行部分是pl/sql塊的功能實現部分,以關鍵字begin開始,以exception或end結束(如果pl/sql塊中沒有異常處理部分,則以end結束)。該部分通過變數賦值、流程控制、資料查詢、資料操作、資料定義、事務控制、游標處理等操作實現塊的功能。

(3)異常處理部分

異常處理部分以關鍵字exception開始,以end結束。該部分用於處理該塊執行過程中產生的異常。

注意:* 執行部分是必須的,而宣告部分和異常部分是可選的。

* 可以在乙個塊的執行部分或異常處理部分巢狀其他的pl/sql塊;

* 所有的pl/sql塊都是以「end;」結束的。

示例,定義乙個包含宣告部分、執行部分和異常處理部分的pl/sql塊。

/*

功能:修改az03表的aae036(經辦日期)欄位的日期格式,只保留年月日,如:

2014-12-15 12:35:12 修改後 2014-12-15

*/declare

var_aae036_char varchar2(50); --aae036的字串型別變數

var_aae036_date date; --aae036的日期型別變數

v_error exception; --儲存異常資訊的變數

cursor cur_az03 is select * from az03; --定義游標指向az03表

begin

for az03_record in cur_az03 loop

var_aae036_char := to_char(az03_record.aae036, 'yyyy-mm-dd'); --得到日期的字串形式

var_aae036_date := to_date(var_aae036_char, 'yyyy-mm-dd'); --轉成日期格式

update az03 set az03.aae036=var_aae036_date where az03.aaz500=az03_record.aaz500; --更新az03的aae036欄位

end loop;

commit; --提交事務

dbms_output.put_line('更新完成');

exception

when v_error then --遇到異常

rollback; --事務回滾

dbms_output.put_line('更新失敗');

end;

**部分,是作者自己寫的示例。

oracle時間加減的語句寫法

from oracle時間加減運算我們經常會用到,下面就為您介紹oracle時間加減的實現方法,如果您遇到過oracle時間加減的問題,不妨一看。加法 加1年 select sysdate,add months sysdate,12 from dual 加1月 select sysdate,add ...

Oracle中PL SQL中if語句的寫法介紹

複製 如下 if語句 判斷使用者輸入的數字。set serveroutput on 接收鍵盤輸入 accept num prompt 請輸入乙個數字 declare nbfaqqlsysp 將螢幕輸入的數字付給變數 pnum number begin if pnum 0 then dbms outp...

Oracle語句塊PL SQL迴圈判斷

pl sql procedural language sql 被資料庫編譯儲存,由使用者呼叫 cuug本周五晚8點免費網路課程,大家趕緊報名去參加吧!程式塊 語法 declare 宣告變數 宣告變數 age int 沒有預設值的變數 age2 int 0 begin 寫正常的處理語句 dbms ou...