sql >> Databáze >  >> RDS >> Oracle

Vytvořte nebo nahraďte tabulku v Oracle pl/sql

Opravdu byste to neměli dělat v PL/SQL, tabulky vytvořené za běhu by naznačovaly chybu ve vašem datovém modelu. Pokud jste opravdu přesvědčeni, že to absolutně musíte udělat, prozkoumejte dočasné tabulky První. Osobně bych přehodnotil, zda je to vůbec nutné.

Zdá se, že se chystáte na EAFP na rozdíl od LBYL přístup, který je popsán v několika odpovědích na tuto otázku . Řekl bych, že je to zbytečné. Tabulka je poměrně statická bestie, můžete použít systémové zobrazení USER_TABLES před jeho odhozením zjistit, zda existuje.

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 Nelegální mix porovnávání

  2. Spouštěče přihlášení na serveru SQL Server

  3. Přehled klastrování ProxySQL v ClusterControl

  4. Existuje PL/SQL pragma podobné DETERMINISTIC, ale pro rozsah jediného SQL SELECT?