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 | 引用树形查询中返回的当前父级行 |