PLSQL变量

PLSQL变量

  • PLSQL 的变量类型

    1. 系统内置的常规简单变量类型:比如说大多数数据库表的字段类型都可以作为变量类型
    2. 用户自定义复杂变量类型:比如记录类型
    3. 保存了一个指针值
    4. 大对象类型(LOB):保存了一个指向大对象的地址

PLSQL本身没有输入输出功能,如果要想 像命令行运行C程序那样可以接收输入值,那你必须依赖执行环境 把值传给PLSQL块,比如 iSQL Plus执行环境或者PLSQL Developer的Command Window 执行环境中, 有一种 substitution变量 可以用来接收输入值;而另一种Host变量可以把运行时的值传出到执行环境中。

  • PLSQL的变量类型举例

    1. 布尔类型:ture
    2. 数值类型:256.120.68
    3. BFILE类型: 视频, 存储于外部文件的二进制数据,最大可到4G
    4. 日期类型:25-JAN-01
    5. BLOB类型: 图片,大二进制数据,最大可到4G
    6. LONG类型: 长文字信息,可变长打字符串,最大可到2G
    7. 字符串类型:Atlanta
  • PLSQL变量声明

语法:

identifier [constant] datatype [not null]
        [:= | default expr];

举例:

declare 
    v_hiredate date;
    v_deptno number(2) not null := 10;
    v_location varchar2(13) := 'Atlanta';
    c_comm constant number := 1400;

说明:
1. 变量命名建议遵循通用规则,比如v_name 表示一个变量,c_name表示一个常量
2. 一般建议每一行声明一个变量,这样程序的可读性比较好;
3. 如果声明了变量,但未进行初始化,则 在没有赋值之前该变量的值为NULL ; 一个好的编程习惯是对所有声明 的变量进行初始化赋值。
4. 在同一个块中,避免命名与数据库表中的字段名相同的变量

DECLARE   employee_id NUMBER(6); 
BEGIN   
SELECT  employee_id   
INTO  employee_id   
FROM  employees   
WHERE   last_name = 'Kochhar'; 
END;

* 这是一个反面教材,合理的命名方法是给变量起名为: v_employee_id

  • ### 常规类型的变量声明举例:
declare 
      v_job   VARCHAR2(9);   
      v_count   BINARY_INTEGER := 0;  
      v_total_sal  NUMBER(9,2) := 0;   
      v_orderdate  DATE := SYSDATE + 7;   
      c_tax_rate  CONSTANT NUMBER(3,2) := 8.25;   
      v_valid   BOOLEAN NOT NULL := TRUE;
      ...
  • #### PLSQL特有的%TYPE属性来声明与XXl类型一致的变量类型
    举例:
...
    v_name employees.last_name %TYPE;
    v_min_balance    v_balance%TYPE := 10;
...
  • ### 可绑定变量(Bind Variable 也称为Host Variable , 非PLSQL 变量):
    可绑定变量是一种在缩主环境中定义的变量,所谓缩主环境一般指示SQLPLUS执行环境或者是 PLSQL Developer 的Command Window执行环境;
    可绑定变量可用于在运行时把值传递给PLSQL, 创建语法如下:
    variable return_code number
    variable return_msg varchar2(30)

例如:

VARIABLE  g_salary NUMBER 
BEGIN    SELECT salary   
INTO :g_salary     
FROM employees    
WHERE employee_id = 178;   
END; 
/ PRINT g_salary

注意:在标准的PLSQL中定义变量是不能用variable关键字的,此关键字只在SQLPlus执行环境中有效,可使用print语句输出变量内容

在PLSQL中使用可绑定变量时,前面要加上”:”,以示区分。

  • #### DBMS_OUTPUT.PUT_LINE()介绍:
    在接下来的实验中,经常需要在调试程序时输出中间变量的值,我们可使用Oracle 内置的Package中的函数。
declare 
    v_sal number(9,2) := &p_annual_sal;
begin
    v_sal := v_sal/12;
    DBMS_OUTPUT.PUT_LINE('The monthly salary is ' || to_char(v_sal));
end;    

上述例子中,我们使用DBMS_OUTPUT.PUT_LINE () 输出变量v_sal的值;

解释: &p_annual_sal 在Plsql Developer的SQL window 执行环境中,可用于提示用户输入一个具体的值。

注意:在SQLPLUS中执行 DBMS_OUTPUT.PUT_LINE () 前,必须先执行: SET SERVEROUTPUT ON ,而在PLSQL Developer的SQL Window中则不需要这句话。

你可能感兴趣的:(PLSQL变量)