zoukankan      html  css  js  c++  java
  • PL/SQL学习笔记

    PL/SQL记录

    PL/SQL记录声明语法如下:

    1 TYPE record_type_name IS RECORD(
    2    filed1 type1[NOT NULL] [:expr1]
    3    ......
    4    filedn typen[NOT NULL] [:expr1n]
    5 )

     其中,record_type_name是记录类型的名字。引用时必须定义相关的变量,记录只是类型(TYPE)而不是变量(VARIABLE).

    记录的使用如下:

     1 DECLARE
     2   TYPE FND_COMPANIES_TYPE IS RECORD(
     3     fnd_code fnd_companies_vl.COMPANY_CODE%TYPE,
     4     FND_NAME FND_COMPANIES_VL.COMPANY_SHORT_NAME%TYPE);
     5   FND_CODE1 FND_COMPANIES_TYPE;
     6 BEGIN
     7   SELECT FCV.COMPANY_CODE, FCV.COMPANY_SHORT_NAME
     8     into FND_CODE1
     9     FROM FND_COMPANIES_VL FCV
    10    WHERE FCV.SET_OF_BOOKS_ID = 32
    11      AND FCV.COMPANY_TYPE = 1;
    12   DBMS_OUTPUT.put_line('fnd_code:' || fnd_code1.FND_CODE || ' AND ' ||
    13                        'FND_NAM:E' || FND_CODE1.FND_NAME);
    14 END;

    运行结果如下:

    fnd_code:320101 AND FND_NAM:E太平资产管理有限公司

    上述代码中,FND_COMPANIES_TYPE 是PL/SQL记录类型,并且包含了两个变量,即fnd_code、FND_NAME;FND_CODE1是记录类型的变量;FND_CODE1.FND_CODE表示引用记录变量FND_CODE1的成员FND_CODE,同理,FND_CODE1.FND_NAME则表示引用成员FND_NAME

    表达式和运算符

    1、数值表达式

    PL/SQL中的数值表达式是由数值型常数、变量、函数和算术运算符组成的。可以使用的算术运算符有+、-、*、/和**(乘方)等。例子如下:

    1 DECLARE
    2   result INTEGER;
    3 BEGIN
    4   result := 3 + 3 * 12 - 24 + 8 ** 2;
    5   dbms_output.put_line('运算的结果为:' || result);
    6 END;

    运行结果如下:

     1 运算的结果为:79 

    2、字符表达式

    字符表达式包括字符常数、变量、函数和字符运算符,唯一可以使用的字符运算符就是连接运算符(||)。

    例子如下:

    1 DECLARE
    2   name NVARCHAR2(10);
    3   spec NVARCHAR2(20);
    4 BEGIN
    5   name := '螺栓';
    6   spec := '12mm';
    7   DBMS_OUTPUT.put_line('name:' || name || ' spec:' || spec);
    8 END;

    运行结果如下:

     1 name:螺栓 spec:12mm 

    3、关系运算符

    PL/SQL中可以使用的关系运算符如下:

    4、逻辑与算符

    PL/SQL中的逻辑运算符包括与或非三种:

    5、集合运算符

    PL/SQL支持的集合运算符如下:

    6、行运算符

    行运算符能返回或者引用特定的行,如下图:

    行运算符 说明
    ALL 保留查询或聚合表达式中的重复行
    DISTINGCT 作用与ALL相反,用于消除重复行
    PRIOR 引用树形查询中返回的当前父级行
  • 相关阅读:
    【BZOJ】【1412】【ZJOI2009】狼和羊的故事
    【POJ】【2987】Firing
    【BZOJ】【1324】王者之剑
    【POJ】【2125】Destroying the Graph
    bzoj4870: [Shoi2017]组合数问题(DP+矩阵乘法优化)
    bzoj3810: [Coci2015]Stanovi(记忆化搜索)
    bzoj2120: 数颜色(BIT套主席树+set/分块)
    bzoj2144: 跳跳棋(二分/倍增)
    bzoj4552: [Tjoi2016&Heoi2016]排序(二分+线段树)
    bzoj4773: 负环(倍增floyd)
  • 原文地址:https://www.cnblogs.com/tian2fei/p/3605663.html
Copyright © 2011-2022 走看看