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

ddlcreateスクリプトでORA-00942エラーを抑制します

    理想的には、ソース管理と構成管理のベストプラクティスを使用して、スキーマを適切に維持する必要があります。このシナリオでは、スクリプトを実行するスキーマにこれらのテーブルが含まれているかどうかを事前に知っています。存在しないテーブルを削除しようとしないため、エラーは発生しません。

    ただし、これが常に可能であるとは限りません。別のアプローチの1つは、2つのスクリプトを用意することです。最初のスクリプトには、DROP TABLEステートメントがあり、先頭にフレンドリーな

    が付いています。
    PROMPT  It is safe to ignore any ORA-00942 errors in the following statements
    

    2番目のスクリプトにはすべてのCREATETABLEステートメントがあり、

    で始まります。
    PROMPT  All the statements in this script should succeed.  So investigate any errors
    

    別のオプションは、データディクショナリを使用することです:

    begin
        for r in ( select table_name from user_tables )
        loop
            execute immediate 'drop table '||r.table_name
                        ||' cascade constraints';
        end loop;
    end;
    

    これには注意してください。これは核のオプションであり、スキーマ内のすべてのテーブルを削除します。




    1. MySQLでうまく機能する.NetORM

    2. MySql、文字列を分割してテーブルに挿入

    3. mysql.connectorはPythonで最後のデータベース状態を提供しません

    4. エラー1698(28000):ユーザー'root'@'localhost'のアクセスが拒否されました