• Chapter 02 Declaring PL/SQL Variables 02


    Types of Variables

    Guidelines for Declaring and Inititalizing PL/SQL Variables

    • Follow naming conventions.
    • Use meaningful identifiers for variables.
    • Initialize variables designated as NOT NULL and CONSTANT.
    • Initialize variables with the assignment operator (:=) or the DEFAULT keyword:
    v_myName VARCHAR2(20) := 'John';
    v_myName VARCHAR2(20) DEFAULT 'John';
    • Declare one identifier per line for better readbility and code maintenance.

    Guidelines for Declaring PL/SQL Variables

    • Avoid using column names as identifiers.

     PL/SQL里面,如果列名和变量名相同,优先PL/SQL引擎优先解析为列名.

    DECLARE employee_id  NUMBER(6);
    
    BEGIN
    
      SELECT employee_id--字段名称
       
      INTO   employee_id--变量名称
      
    FROM employees   WHERE last_name = 'Kochhar'; END; /
    • Use the NOT NULL constrain when the variable must hold a value.

    Scalar Data Types

    • Hold a single value
    • Have no iternal components

    Base Scalar Data Types

    • CHAR [(maximum_length)]
    • VARCHAR2(maximum_length)
    • NUMBER [(precision,scale)]
    • BINARY_INTEGER
    • PLS_INTEGER
    • BOOLEAN
    • BINARY_FLOAT
    • BINARY_DOULBE
    • DATE
    • TIMESTAMP
    • TIMESTAMP WITH TIME ZONE
    • TIMESTAMP WITH LOCAL TIME ZONE
    • INTERVAL YEAR TO MONTH
    • INTERVAL DAY TO SECOND

    Declaring Scalar Variables

    Examples:

    DECLARE
        v_emp_job           VARCHAR2(9);
        v_count_job         BINARY_INTEGER :=0;
        v_dept_total_sal    NUMBER(9,2)  :=0;
        v_orderdate         DATE :=SYSDATE + 7;
        v_tax_rate          CONSTANT NUMBER(3,2) :=8.25;
        v_valid             BOOLEAN NOT NULL :=TRUE;
        ...

    %TYPE Attribute

    • Is used to decalre a variable according to:
      • -A database column definition
      • -Another declared variable
    • Is prefixed with:
      • -The database table and column
      • -The name of the decared variable

    Declaring Variables with the %TYPE  Attribute

    • Syntax
    identifier table.column_name%TYPE;
    • Examples
    ...
    
      employee_name employees.last_name%TYPE;
    
    ...
    ...
    
      balance  NUMBER(7,2);
    
      min_balance balance%TYPE :=1000;
    
    ...

    Declaring Boolean Variables

    • Only the TRUE,FALSE,and NULL values can be assigned to a Boolean variable.
    • Conditional expressions use the logical operators AND and OR and the unary operator NOT to check the variable values.
    • The variables alwarys yield TRUE,FALSE,or NULL.
    • Airthmetic,character,and date expressions can be used to return a Boolean value.

    在PL/SQL中,Boolean型变量,不同于其他语言,其包含三种类型的值,分别是(TRUE,FALSE,NULL);

    IF(TRUE)
    
    ....
    
    IF(FALSE | NULL)
    
    ...

    Bind Variables

    Bind variables are:

    • Created in the enviroment
    • Also called host variables.
    • Created with the VARIABLE keyword.
    • Used in SQL statements and PL/SQL blocks
    • Accessed even after the PL/SQL block is executed
    • Referenced with a preceding colon.

    声明Bind Variables,使用关键字VARIABLE;绑定变量属于非PL/SQL变量.

    PL/SQL声明变量,使用关键字DECLARE.

    日常开发中,应当注意区别运用DECLARE 和 VARIABLE关键字,声明变量.通过绑定变量和PL/SQL,实现他们彼此之间的交互.

    Pinting Bind Variables

    Example:

    Demo
    VARIABLE b_emp_salary NUMBER
    BEGIN
            SELECT salary INTO :b_emp_salary
            FROM employees WHERE employee_id = 178;
    END;
    /
    
    PRINT b_emp_salary;
    SELECT first_name,last_name FROM employees
    WHERE salary = :b_emp_salary;
    
    SQL> @bind.sql
    
    PL/SQL procedure successfully completed.
    
    
    B_EMP_SALARY
    ------------
            7000
    
    
    FIRST_NAME           LAST_NAME
    -------------------- -------------------------
    Oliver               Tuvault
    Sarath               Sewall
    Kimberely            Grant
    Demo 02 : With SET AUTOPRINT ON
    VARIABLE b_emp_salary
    SET AUTOPRINT ON
    DECLARE
            v_empno NUMBER(6) :=&empno;
    BEGIN
            SELECT salary INTO :b_emp_salary
            FROM employees WHERE employee_id = v_empno;
    END;
    
    /
    SQL> @bind2.sql
    variable   b_emp_salary
    datatype   NUMBER
    Enter value for empno: 100
    old   2:        v_empno NUMBER(6) :=&empno;
    new   2:        v_empno NUMBER(6) :=100;
    
    PL/SQL procedure successfully completed.
    
    
    B_EMP_SALARY
    ------------
           24000

    LOB Data Type Variables

    Composite Data Types

    Summary

    In this lesson,you should have learned how to:

    • Recognize valid and invalid identifiers.
    • Declare variables in the declarative section of a PL/SQL block.
    • Initialize variables and use them in the executable section.
    • Differentiate between scalar and composite data types.
    • Use the %TYPE attribute
    • Use bind variables.
  • 相关阅读:
    CSS学习笔记 糖不苦
    Servlet与HTTP介绍学习 糖不苦
    new 的原理和实现 糖不苦
    HTML学习笔记 糖不苦
    事务的概念,以及事务在JDBC编程中处理事务的步骤 糖不苦
    前端JS获取用户位置 糖不苦
    数据接口请求异常:parsererror 糖不苦
    所有CSS字体属性 糖不苦
    jQuery CSS样式方法
    jQuery效果隐藏/显示,淡入/淡出,滑动,动画
  • 原文地址:https://www.cnblogs.com/arcer/p/3029057.html
Copyright © 2020-2023  润新知