• 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. 

     
  • 相关阅读:
    黄聪:解决Web部署 svg/woff/woff2字体 404错误
    黄聪:C#中HtmlAgilityPack判断是否包含或不包含指定的属性或值
    黄聪:GeckoFX如何引用jquery文件并执行自定义JS
    黄聪:css3实现图片划过一束光闪过效果(图片光影掠过效果)
    黄聪:C#带cookie模拟登录百度
    黄聪:如何为IIS增加svg和woff等字体格式的MIME
    黄聪:微信支付错误两个问题的解决:curl出错,错误码:60
    黄聪:《跟黄聪学WordPress插件开发》
    黄聪:GeckoWebBrowser多窗口独立cookie
    黄聪:远程连接mysql数据库注意事项记录(远程连接慢skip-name-resolve)
  • 原文地址:https://www.cnblogs.com/goingforward/p/5842970.html
Copyright © 2020-2023  润新知