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

Oracle pl/sqlでテーブルを作成または置換します

    PL / SQLでこれを行うべきではありません。実行時に作成されたテーブルは、データモデルの欠陥を示しています。絶対にこれを行う必要があると本当に確信している場合は、一時テーブル 最初。個人的には、それが必要かどうかを再評価したいと思います。

    LBYLではなくEAFP を選択しているようです。 この質問 に対するいくつかの回答で説明されているアプローチ 。これは不要だと思います。テーブルはかなり静的な獣です。システムビュー USER_TABLES ドロップする前に存在するかどうかを確認します。

    declare
    
       l_ct number;
    
    begin
    
       -- Determine if the table exists.
       select count(*) into l_ct
         from user_tables
        where table_name = 'THE_TABLE';
    
       -- Drop the table if it exists.
       if l_ct = 1 then
          execute immediate 'drop table the_table';
       end if;
    
       -- Create the new table it either didn-t exist or
       -- has been dropped so any exceptions are exceptional.
       execute immediate 'create table the_table ( ... )';
    
    end;
    /
    


    1. コマンドラインを使用して、新しいMySQLデータベース構造を開発者から本番Webサイトに移行するにはどうすればよいですか?

    2. データベースリンクを介してOracleでストアド関数(ユーザー定義型の配列を返す)を呼び出す

    3. OracleでUTILSを使用できますか?

    4. ストアドプロシージャの依存関係をプログラムでどのように識別しますか?