PL/SQL語句塊結構
- 聲明部分
- 可執行部分
- 異常處理部分
示例:
DECLARE -- 聲明部分
v_first_name VARCHAR(32) ;-- 以分號結構語句
v_last_name VARCHAR(32) ;
BEGIN --可執行部分
SELECT FISRST_NAME,LAST_NAME
INTO v_first_name,v_last_name
FROM STUDENT
WHERE STUDENT_ID = '123' ;
DBMS_OUTPUT.PUT_LINE ('STUDENT NAME:''v_first_name' || 'v_last_name') ;
EXCEPTION -- 異常處理部分
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('THERE IS NO STUDENT WITH' || 'STUDENT_ID = 123');
END;
如何執行PL/SQL
每次執行匿名PL/SQL語句塊時,代碼會發送給位於服務器的PL/SQL引擎,在此進行編譯,命名PL/SQL語句塊只在創建或者被修改時進行編譯。編譯過程包括語法檢查,綁定,僞代碼生成。
如何區分PL/SQL語句塊
點號(’.’)或者斜線(‘/’)表示PL/SQL語句塊的結尾,並且點號是可選的,斜線會執行整個PL/SQL語句塊,並且是必需的。
- 替代變量
藉助於替代變量,PL/SQL可以接受輸入信息。通常替代變量的前面是&或者&&。
示例:
DECLARE -- 聲明部分
v_student_id NUMBER :=&sv_student_id; --替代變量
v_first_name VARCHAR(32) ;-- 以分號結構語句
v_last_name VARCHAR(32) ;
BEGIN --可執行部分
SELECT FISRST_NAME,LAST_NAME
INTO v_first_name,v_last_name
FROM STUDENT
WHERE STUDENT_ID = sv_student_id ;--替代變量
DBMS_OUTPUT.PUT_LINE ('STUDENT NAME:''v_first_name' || 'v_last_name') ;
EXCEPTION -- 異常處理部分
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('THERE IS NO STUDENT WITH' || 'STUDENT_ID = 123');
END;
- 使用 DBMS_OUTPUT.PUT_LINE語句
DBMS_OUTPUT.PUT_LINE(”);將處理結果顯示在屏幕上。
如果在PL/SQL語句塊之前執行SET SERVEROUTPUT OFF ;語句,則屏幕上不會顯示有關處理結果的內容。