zoukankan      html  css  js  c++  java
  • 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.
  • 相关阅读:
    discuz对PHP7不支持mysql的兼容性处理
    mysql 5.6 设置root初始密码正确步骤,避免入坑
    当root用户无密码,非超级权限用户时提示mysqladmin: Can't turn off logging; error: 'Access denied; you need the SUPER privilege for this op解决方案
    部署 LAMP (CentOS 7.2),摘自阿里云,方便查看使用
    Win32 API编程:网络编程在设置WSAAsyncSelect模型后connect的返回值问题
    指针、指针变量梳理,取地址与取值运算
    C++/VC中ANSI与UNICODE中字符定义和函数对照表
    com.google.gson的SerializedName解决实体类与关键字的重名
    【Java】BigDecimal
    【MySQL】去重
  • 原文地址:https://www.cnblogs.com/arcer/p/3029057.html
Copyright © 2011-2022 走看看