sql >> データベース >  >> RDS >> Oracle

PL / SQL SQL*Plus文は無視されます

    質問はトリガーとは何の関係もありません。次の行に構文エラーがあるだけです:

    IF :NEW.EVENT_ID AND :NEW.DESCRIPTION IS NOT NULL THEN
    

    if ステートメント 論理演算子はブール式を期待します。 PL / SQLには、ブール値への暗黙的なデータ型変換はありません。

    これは、:NEW.EVENT_IDを意味します は有効なブール式ではないため、andと一緒に使用することはできません。 -演算子、したがってコンパイルは次のように失敗します:

    PLS-00382: expression is of wrong type
    

    基本的に、問題は次の例に絞り込むことができます。

    declare
      v_foo number;
    begin
      -- compilation fails because a number (or any other non-boolean
      -- data type) is not a boolean expression.
      if v_foo
      then
        null;
      end if;
    end;
    /
    

    実例(正常にコンパイルされます):

    declare
      v_foo number;
      function to_boolean(p_x in number) return boolean is
      begin
        return p_x > 0;
      end;
    begin
      -- a function returns a boolean value
      if to_boolean(v_foo)
      then
        null;
      end if;
    
      -- a > operator returns a boolean value
      if v_foo > 0
      then
        null;
      end if;
    
      -- is null operator returns a boolean value
      if v_foo is null
      then
        null;
      end if;
    end;
    /
    


    1. 複数選択の値を挿入する方法

    2. phpおよびmysql-チェックボックス、ラジオボタン、およびドロップダウンメニューの結果をユーザーからmysqlデータベースに送信し、そこに保存します

    3. Createステートメントを使用してSQLServerでテーブルを作成する-SQLServer/T-SQLチュートリアルパート34

    4. キーの値に基づいて配列をより小さな配列に分割しますか?