PL/SQL 里变量类型的写法,其实挺灵活的,尤其是%TYPE
和%ROWTYPE
这两个写法,真的是老程序员的宝藏用法。像v_ename emp.ename %TYPE
这样写,变量的类型直接跟表里的字段走,表结构改了也不用担心变量类型错位,省心不少。
还有emp_rec emp%ROWTYPE
,一行数据打包成一个变量,不用一个字段一个字段地写,适合取整表记录的时候用。你如果还在用那种一个个定义字段的方式,真的该试试这招,写得少,错得也少。
变量赋值那块,比如an_sal := mon_sal * 12 + nvl(comm, 0)
,挺典型的工资计算方式,加上nvl
补空值,这种写法常见但也实用。再比如Select ename INTO v_ename from emp where eno = 'e01'
,别忘了要配合INTO
用,不然会报错哦。
如果你对变量作用范围还不太熟,或者对环境变量配置这块还想查查,可以看看下面这些资料,都是比较基础但实用的:
- PL/SQL 编程基础详解 %TYPE 和 %ROWTYPE
- PLSQL 编程基础变量作用范围详解
- JDK、Oracle、PLSQL 环境变量配置指南
- Oracle SQL 和 PL/SQL 中的变量数据类型
如果你平时 PL 写得比较多,或者刚开始学 Oracle,建议你把这几个用法都过一遍。写熟了之后,效率提升还挺的。