Oracle
 sql >> база данни >  >> RDS >> Oracle

Създайте или заменете таблица в Oracle pl/sql

Наистина не трябва да правите това в PL/SQL, таблици, създадени по време на изпълнение, биха били показателни за недостатък във вашия модел на данни. Ако наистина сте убедени, че абсолютно трябва да направите това, тогава проучете временни таблици първи. Лично аз бих преценил дали изобщо е необходимо.

Изглежда предпочитате EAFP за разлика от LBYL подход, който е описан в няколко отговора на този въпрос . Бих казал, че това е ненужно. Таблицата е доста статичен звяр, можете да използвате системния изглед 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да одитирате дейността на базата данни без проблеми с производителността и скалируемостта?

  2. 2 начина да форматирате резултатите от заявката си в SQLcl (Oracle)

  3. MySQL COALESCE и NULLIF функция

  4. Невалидно име на общ потребител или роля

  5. Oracle 18c Нова функция:Онлайн модификация на разделянето