PLSQL --變量


 

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;

 

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM