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

IF ELSE ステートメントを追加する

    初心者としてこの種の構文の問題に対処する方法については、結合ロジックに気を取られないように、可能な限り最小の例に単純化する練習をすることをお勧めします.

    たとえば、これをすばやくテストして、機能しないことを確認できます :

    declare
        rc sys_refcursor;
    begin
        open rc for
            case
                when 1 = 1 then select * from dual  -- not valid
            end;
    end;
      

    で失敗します

    ORA-06550: line 6, column 29:
    PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ...
      

    open rc for select のため 構文は 1 つのステートメントである必要があり、条件ロジックで分割することはできません。

    create functionがないことに注意してください 、パラメーター、または結合などを複雑にします。構文を整理したら、これらすべてを元に戻すことができます。 case ステートメントの構文は こちら 。 (case にはいくつかの異なる種類があることに注意してください .) どちらかである必要があります

    declare
        rc sys_refcursor;
    begin
        case
            when 1 = 1 then
                open rc for select * from dual;
        end case;
    end;
      

    または if を使用して同等の :

    declare
        rc sys_refcursor;
    begin
        if 1 = 1 then
            open rc for select * from dual;
        end if;
    end;
      

    1. Oracle Form Builderを使用してフォルダを作成するにはどうすればよいですか?

    2. MySQL-データベースコンテンツの整理(スポーツリーグ)

    3. ContentValuesを介してデータベースにタイムスタンプを挿入します

    4. フォームフィールドとデータベーステーブルフィールドの名前は同じですか?