编者按:
越是在动荡的情况下,越要建立自己的内心之锚,思考自己本身的特质。
最好的学习是实践加上看官方文档。官方文档中的代码例更是精华和重点所在。
IT行业如此,编程如此,Oracle PL/SQL的学习更是如此。
本系列以摘自《Database PL/SQL Language Reference》的PL/SQL代码例为主进行介绍。
【免责声明】本公众号文章仅代表个人观点,与任何公司无关。

编辑|SQL和数据库技术(ID:SQLplusDB)
Oracle PL/SQL例
Oracle PL/SQL编程基础
Oracle PL/SQL例2:处理查询的结果行(基础循环)
Oracle PL/SQL例3:使用双引号
Oracle PL/SQL例4:文字(Literals)换行的处理
Oracle PL/SQL例5:注释
Oracle PL/SQL例6:声明变量/常量
Oracle PL/SQL例7:%TYPE 属性
Oracle PL/SQL例8:标识符引用
这里介绍各种操作的表达式和运算符
连接运算符
例1:
DECLAREx VARCHAR2(4) := 'suit';y VARCHAR2(4) := 'case';BEGINDBMS_OUTPUT.PUT_LINE (x || y);END;/结果:suitcase
例2:
BEGINDBMS_OUTPUT.PUT_LINE ('apple' || NULL || NULL || 'sauce');END;/输出:applesauce
2. 运算符的优先级
下表的运算符的优先级由高到低。

可以使用圆括号控制运算符的优先级别。
例1:
DECLAREa INTEGER := 1+2**2;b INTEGER := (1+2)**2;BEGINDBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a));DBMS_OUTPUT.PUT_LINE('b = ' || TO_CHAR(b));END;/输出:a = 5b = 9
例2:
DECLAREa INTEGER := ((1+2)*(3+4))/7;BEGINDBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a));END;/输出:a = 3
例3:通过括号增加可读性
DECLAREa INTEGER := 2**2*3**2;b INTEGER := (2**2)*(3**2);BEGINDBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a));DBMS_OUTPUT.PUT_LINE('b = ' || TO_CHAR(b));END;/输出:a = 36b = 36
例4:
DECLAREsalary NUMBER := 60000;commission NUMBER := 0.10;BEGIN-- Division has higher precedence than addition:DBMS_OUTPUT.PUT_LINE('5 + 12 / 4 = ' || TO_CHAR(5 + 12 / 4));DBMS_OUTPUT.PUT_LINE('12 / 4 + 5 = ' || TO_CHAR(12 / 4 + 5));-- Parentheses override default operator precedence:DBMS_OUTPUT.PUT_LINE('8 + 6 / 2 = ' || TO_CHAR(8 + 6 / 2));DBMS_OUTPUT.PUT_LINE('(8 + 6) / 2 = ' || TO_CHAR((8 + 6) / 2));-- Most deeply nested operation is evaluated first:DBMS_OUTPUT.PUT_LINE('100 + (20 / 5 + (7 - 3)) = '|| TO_CHAR(100 + (20 / 5 + (7 - 3))));-- Parentheses, even when unnecessary, improve readability:DBMS_OUTPUT.PUT_LINE('(salary * 0.05) + (commission * 0.25) = '|| TO_CHAR((salary * 0.05) + (commission * 0.25)));DBMS_OUTPUT.PUT_LINE('salary * 0.05 + commission * 0.25 = '|| TO_CHAR(salary * 0.05 + commission * 0.25));END;/输出:5 + 12 / 4 = 812 / 4 + 5 = 88 + 6 / 2 = 11(8 + 6) / 2 = 7100 + (20 / 5 + (7 - 3)) = 108(salary * 0.05) + (commission * 0.25) = 3000.025salary * 0.05 + commission * 0.25 = 3000.025
文章转载自SQL和数据库技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




