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

ORA-00900を解決する方法

    ORA-00900 無効なSQLステートメントは一般的なエラーの1つです
    これは、このエラーについてOracleのドキュメントに記載されている内容です

    参照:Oracleドキュメント

    ORA-00900の無効なSQLステートメントを解決するためのチェックリスト

    (1)このエラーは、Oracleプロシージャを作成しようとしていて、ProceduralOptionがインストールされていない場合によく発生します。 Procedural Optionがインストールされているかどうかを確認するには、SQL*Plusを使用してOracleセッションを開きます。 PL / SQLバナーが表示されない場合は、ProceduralOptionがインストールされていないことがわかります。

    (2)データベースリンクを使用しようとしているときにORA-00900が発生する可能性があります。多くのユーザーは、2000より前に機能していた可能性のあるフィールドをクエリしようとすると、ORA-00900に遭遇していることに気付きます。ローカルデータベースでORA-00900を解決するには、init.oraパラメータNLS_DATE_FORMATを変更してから、(代わりに二重引用符を使用してください)シングル)値の周り


    alter session set NLS_DATE_FORMAT = "DD-MON-YYYY";

    (3)SQL Developer/JDBC接続でexecuteステートメントを使用する

    execute dbms_utility.analyze_schema('OKX','ESTIMATE',30);
    ORA-00900: invalid SQL statement

    executeはsqlplusオプションです。アプリケーション/他の言語プログラムでは、以下のオプションのいずれかを使用する必要があります

    begin
    execute dbms_utility.analyze_schema('OKX','ESTIMATE',30);
    end;
    or
    begin
    execute dbms_utility.analyze_schema('OKX','ESTIMATE',30)
    end;
    /

    (4)多くの場合、開発者はplsqlブロックで間違いを犯し、

    のようなステートメントを記述します。
    v_dynsql:='dbms_utility.analyze_schema('OKX','ESTIMATE',30)';
    execute immediate v_dynsql;

    上記のコードは、ORA-00900をdbms_utility.analyze_schema(‘OKX’、’ESTIMATE’、30);として提供します。
    有効なステートメントではありません

    修正は、以下に示すように開始と終了を使用することです

    v_dynsql:=
    q'[BEGIN
    dbms_utility.analyze_schema('OKX','ESTIMATE',30);
    END;]';
    execute immediate v_dynsql;

    (5)PLSQLで表を記述したい場合

    SQL> begin execute immediate 'describe FND_USER';
    2 end;
    3 /
    begin execute immediate 'describe FND_USER';
    *
    ERROR at line 1:
    ORA-00900: invalid SQL statement
    ORA-06512: at line 1

    ここではdescを使用できません。クエリに基づいて選択することもできます

    begin
    execute immediate q'[select COLUMN_NAME,DATA_TYPE
    from all_tab_columns
    where table_name = 'FND_USER'
    order by column_id]';
    end;
    /

    (6)ビューステートメントの作成に関する計画を説明しようとしている場合

    SQL> explain plan for create view test as select * from dual;
    explain plan for create view test as select * from dual
    *
    ERROR at line 1:
    ORA-00900: invalid SQL statement

    ORAエラーを修正するさまざまな方法が気に入っていただければ幸いです。フィードバックをお寄せください

    関連記事
    ORA-00911:無効な文字
    ORA-29913:ODCIEXTTABLEOPENコールアウトの実行中にエラーが発生しました
    ORA-27154:起動中にpost/wait作成に失敗しました
    ORA-01111
    ORA -00257:アーカイバエラー、解放されるまで内部接続のみ
    ora-29283:無効なファイル操作


    1. Hadoop入出力システムを理解する

    2. 構成システムの初期化に失敗しました

    3. 1つの列でDISTINCTを選択

    4. MySQLのforループの例