代入演算子、算術演算子、比較演算子、論理演算子  
SQL の 単純比較条件 の内容と比較すると「指数」演算子(**) が存在しないこと、 「等しくない」の (¬= ) 演算子が存在しないことに差異があるがほぼ同一である。
 
 
| 優先 順位 | 演算子 | 内容 |  | 
| 1 | ** | 指数 (POWER 関数 相当) | 算術 | 
| 2 | +  ,  - | 符号 | 
| 3 | *  ,  / | 乗算、除算 | 
| 4 | +  ,  -  ,  || | 加算、減算、文字連結 | 
| 5 | = | 等しい | 比較 | 
| <>  ,  != ^=  ,  ~=
 | 等しくない | 
| >   ,   < | (左辺が)より大きい、より小さい | 
| >=  ,  <= | (左辺が)以上、以下 | 
| IS NULL | NULL かどうかをテスト | 
| LIKE | パターン比較 | 
| BETWEEN a AND b | a 以上 b 以下の範囲テスト | 
| IN | メンバー比較 (SQL の = ANY 相当) | 
何で否定条件にだけ、こんなに種類があるんでしょうか
SQL> set serveroutput on
SQL> begin
  2     if (1 <> 1) then
  3             null;
  4     elsif ( 'abc' != 'abc' ) then
  5             null;
  6     elsif ( sysdate ^= sysdate) then
  7             null;
  8     elsif ( hextoraw('ff') ~= hextoraw('ff')) then
  9             null;
 10     else
 11             dbms_output.put_line('色々な条件否定の演算子');
 12     end if;
 13  end;
 14  /
色々な条件否定の演算子
括弧を使った方が良い例
SQL> begin
  2      if ( NOT 1 + 1 IS NULL OR FALSE) then
  3          dbms_output.put_line('IS TRUE');
  4      end if;
  5  end;
  6  /
IS TRUE
NOT 1 + 1 IS NULL OR FALSE ⇒ NOT (( 1 + 1 ) IS NULL)  OR FALSE 
⇒ NOT ( FALSE ) OR FALSE ⇒ TRUE OR FALSE ⇒ TRUE
日付と期間と掛け算
SQL> declare
  2     vdate date;
  3  begin
  4     vdate := date '2000-01-01';
  5     vdate := vdate + 24*60*60* interval '1' second;
  6     dbms_output.put_line(vdate);
  7  end;
  8  /
2000-01-02 00:00:00
SQL の単純比較条件 を PL/SQL でも使用してみる。  
SQL> BEGIN
  2     IF ('ABC' = 'ABC') THEN
  3             DBMS_OUTPUT.PUT_LINE('AAAA');
  4     END IF;
  5  END;
  6  /
AAAA
 
PL/SQLプロシージャが正常に完了しました。
PL/SQL におけるリスト単純比較条件  
使用できない。
SQL> BEGIN
  2     IF (('ABC', 'XYZ') = (SELECT 'ABC', 'XYZ' FROM DUAL)) THEN
  3             DBMS_OUTPUT.PUT_LINE('AAAA');
  4     END IF;
  5  END;
  6  /
        IF (('ABC', 'XYZ') = (SELECT 'ABC', 'XYZ' FROM DUAL)) THEN
                             *
行2でエラーが発生しました。:
ORA-06550: 行2、列23:
PLS-00405: このコンテキストで副問合せはできません。
ORA-06550: 行2、列2:
PL/SQL: Statement ignored