zoukankan      html  css  js  c++  java
  • PL/SQL学习(一)

    原文参考:http://plsql-tutorial.com/

    组成

    • 声明部分(可选)
    • 执行部分(必选)
    • 异常处理(可选)
     
        明:
            DECLARE
     
        执行:
            BEGIN
                ...
            END
     
        异常处理:
            EXCEPTION
     
    每个语句必须以“;”结束;
    PL/SQL Block可嵌套;
    /表示执行PL/SQL块;


    优点:
      块结构
             可嵌套,任务或者逻辑模块的集合,可存储在数据库里重用
     
      支持过程化语言
              包含如条件判断语句和循环等过程化语句结构
     
      高性能
              多条SQL语句一起执行,减少了网络通信
     
      异常处理
              异常发生时,可以指定执行特定操作或者返回异常信息
     
    PL/SQL变量和常量

    变量

    格式:

    variable_name datatype [NOT NULL := value ]; 
    例子:
    dept varchar2(10) NOT NULL := “HR Dept”;
     
    指定变量值的两种方式:

    1)   variable_name:= value;

     2)

           SELECT column_name

           INTO variable_name  

           FROM table_name 

           [WHERE condition];

     
    变量范围:
    • Local variables -定义在嵌套块里,不能被外部块访问
    • Global variables - 定义在外部块里,可以供自己使用,也可以被其里面的嵌套块使用。

    常量

    格式:

    constant_name CONSTANT datatype := VALUE; 
    例子:
    salary_increase CONSTANT number (3) := 10;

    pl/Sql Record 记录

    定义和声明pl/Sql Record的几种方式:

    语法格式

    用途

    TYPE record_type_name IS RECORD (column_name1 datatype, column_name2 datatype, ...);

    Define a composite datatype, where each field is scalar.

    col_name table_name.column_name%type;

    Dynamically define the datatype of a column based on a database column.

    record_name record_type_name;

    Declare a record based on a user-defined type. 

    record_name table_name%ROWTYPE;

    Dynamically declare a record based on an entire row of a table. Each column in the table corresponds to a field in the record.
     
    Record设置和获取记录:
    语法格式

    用途

    record_name.col_name := value;

    To directly assign a value to a specific column of a record.

    record_name.column_name := value;

    To directly assign a value to a specific column of a record, if the record is declared using %ROWTYPE.

    SELECT col1, col2 INTO record_name.col_name1, record_name.col_name2 FROM table_name [WHERE clause];

    To assign values to each field of a record from the database table.

    SELECT * INTO record_name FROM table_name [WHERE clause];

    To assign a value to all fields in the record from a database table.

    variable_name := record_name.col_name;

    To get a value from a record column and assigning it to a variable. 

     
  • 相关阅读:
    我们需要什么,技术还是idea
    爱上一个人,忘记一个人
    我的大学
    早上8点,轻轨抛锚时... ...
    我的秋天
    通过注册表以及文件操作的方式获取当前正在实际使用的物理网卡MAC地址
    【分享】全局字符串转换为局部变量存储防止软件被静态分析暴露敏感字符串
    正确获取硬盘序列号源码
    【转】Xvid参数详解
    VerifyFile验证文件签名
  • 原文地址:https://www.cnblogs.com/goingforward/p/5842970.html
Copyright © 2011-2022 走看看