1.1 程序結構:
聲明部分、執行部分、異常處理部分
1 -- Created on 2018/8/23 by MENGMENG.CHEN 2 declare 3 --聲明變量和游標 4 -- Local variables here 5 i integer; 6 begin 7 -- Test statements here 8 --執行部分 9 --【異常處理部分】 10 dbms_output.put_line('Hello World'); 11 end;
如果要在黑窗口執行:
set serveroutput on 用於打開打印信息開關
SQLPLUS中執行PLSQL程序 需要在程序最后添加一個 / 標識程序的結束。
1.2 變量
1.普通數據變量:char,varchar2,date,number,boolean,long
2.特殊變量類型:引用型,記錄型變量
變量聲明的方式:
變量名 變量類型(變量長度) 例如: v_name varchar2(30);
1.4.1 普通變量賦值方式
1.直接賦值語句:= 例如: v_name : = '張三';
2.語句賦值 使用select...into...賦值,(語法:select 值 into 變量)
1 -- Created on 2018/8/23 by MENGMENG.CHEN 2 declare 3 -- Local variables here 4 --姓名 5 v_name VARCHAR2(50) := '張三'; 6 v_salary NUMBER(6,2); 7 v_addr VARCHAR2(200); 8 begin 9 -- Test statements here 10 v_salary := 1500; 11 --語句賦值 12 SELECT '杭州' INTO v_addr FROM dual; 13 --打印變量 14 dbms_output.put_line('姓名:'||v_name||'薪水:'||v_salary||'地址:'||v_addr); 15 end;
||用於字符串拼接。
運行結果:
1.4.2 引用型變量
變量的類型和長度取決於表中字段的類型和長度。
通過表名.列名%TYPE 指定變量的類型和長度。例如: v_name emp.ename%TYPE;
引用型變量的好處:
使用普通變量定義方式,需要指定表中字段的類型,而使用引用類型,不需要知道類型,使用%TYPE是非常好的編程風格,更適應於對數據庫定義的更新。
示例:查詢emp表中7839號員工的個人信息,打印姓名和薪水
1 -- Created on 2018/8/23 by MENGMENG.CHEN 2 --查詢emp表中7839號員工的個人信息,打印姓名和薪水 3 DECLARE 4 -- Local variables here 5 --姓名 6 V_NAME EMP.ENAME%TYPE; 7 --薪水 8 V_SAL EMP.SAL%TYPE; 9 BEGIN 10 -- Test statements here 11 --查詢姓名和薪水,並賦值給變量 12 SELECT ENAME, SAL INTO V_NAME, V_SAL FROM EMP WHERE EMP.EMPNO = 7839; 13 --打印變量 14 DBMS_OUTPUT.PUT_LINE('姓名:' || V_NAME || '薪水:' || V_SAL); 15 END;
運行結果:
1.4.3 記錄型變量
接受表中的一整行記錄,相當於java中的一個對象
語法: 變量名稱 表名%ROWTYPE,例如: v_emp emp%ROWTYPE;
示例:查詢emp表中7839號員工的個人信息打印,姓名和薪水
1 -- Created on 2018/8/23 by MENGMENG.CHEN 2 --查詢emp表中7839號員工的個人信息 3 DECLARE 4 -- Local variables here 5 --記錄型變量 6 v_emp emp%ROWTYPE; 7 BEGIN 8 -- Test statements here 9 SELECT * INTO v_emp FROM EMP WHERE EMPNO='7839'; 10 --打印信息 11 --v_emp相當於一個對象,ename相當於它的屬性 12 DBMS_OUTPUT.PUT_LINE('姓名:' || v_emp.ename || '薪水:' || v_emp.sal); 13 14 END;
運行結果: