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;  --输出结果

 

posted @ 2021-07-22 11:02  马蹄烧饼  阅读(45)  评论(0编辑  收藏  举报