2.运算符
在 pl/sql 代码中,当定义了常量变量或描述符后,通常需要根据实际的业务逻辑执行一系列运算,这些运算由操作数和运算符构成的表达式来实现。操作数可以是变量常量描述或一个函数的调用,运算符定义了如何对操作符进行操作。
1. 赋值运算符示例 declare v_variable1 varchar2(200) :='this is a'; -- 定义变量变赋初值 v_variable2 varchar2(100); -- 定义变量 v_result varchar2(500); v_constant constant varchar2(10) :='constant'; -- 定义常量赋常量值 begin v_variable2 :='variable'; -- 使用操作数为变量赋值 v_result :=v_variable1 ||v_constant; -- 使用表达式为变量赋值 dbms_output.put_line(v_result); -- 输出变量结果值 end;
2.连接运算符示例 declare x varchar2(8) :='你好,'; -- 定义字符串变量并赋初值 y varchar2(8) :='中国'; begin dbms_output.put_line(x||y); --输出字符串变量值 end;
3.连接运算符与null 值示例 eclare x varchar2(8) :='你好,'; --定义字符串变量并赋初始值 y varchar2(8):='中国'; z varchar2(10); -- 未赋值则为null begin dbms_output.put_line(x||z||null||y); -- 输出字符串变量值 end;
4.逻辑运算符示例 --定义一个输出布尔值的过程 create or replace procedure print_boolean (name varchar2,value boolean) is begin if value is null then dbms_output.put_line(name||'=null');--如果布尔值为null,结果为null elsif value =ture then dbms_output.put_line(name || '=ture');-- 如果布尔值为ture ,结果为true else dbms_output.put_line(name ||'false');-- 如果布尔值为false,结果为false end is; end;
5.比较运算符示例 declare v_value varchar2(200) :='Johnson'; --定义并初始化变量 letter varchar2(1):='m'; begin --输出算数运算符结果 print_boolean('(2+2=4)',2+2=4); print_boolean('(2+2<>4)',2+2<>4); print_boolean('(1<2)',1<2); print_boolean('(1>2)',1>2); print_boolean('(1<=2)',1<=2); print_boolean('(1>=1)',1>=1); --输出like 运算符结果 if v_value like 'j%s_n' then dbms_output.put_line('true'); else dbms_output.put_line('false'); end if -- 输出between 运算符结果 print_boolean('2 beteen 1 and 3',2 beteen 1 and 3 ); print_boolean('2 beteen 2 and 3',2 beteen 2 and 3 ); --输出in运算符结果 print_boolean('letter in("a","b","c")',letter in ('a','b','c')); print_boolean('letter in ("z","m","y","p")',letter in('z','m','y','p') ); end;
6.运算符优先级示例
优先级
1 ** (乘方)
2 +,-(一元操作符正、负)
3 *,/ (乘、除)
4 +,-,||(加减和字符串连接)
5 =,<,>,<=,>=,<>,!=,~=,^=,is null,like,between,in(比较)
declare v_result number; -- 定义保存结果值的变量 begin v_result :=10+5*6-9/3; --计算数据运算结果 dbms_output.put_line(trunc(v_result)); end; --输出结果