sql >> Database >  >> RDS >> Oracle

Tabel maken of vervangen in Oracle pl/sql

Je zou dit echt niet moeten doen in PL/SQL, tabellen die tijdens runtime zijn gemaakt, zouden wijzen op een fout in je gegevensmodel. Als je er echt van overtuigd bent dat je dit absoluut moet doen, onderzoek dan tijdelijke tabellen eerst. Persoonlijk zou ik opnieuw beoordelen of het überhaupt nodig is.

Je lijkt te gaan voor de EAFP in tegenstelling tot LBYL aanpak, die wordt beschreven in een paar antwoorden op deze vraag . Ik zou zeggen dat dit niet nodig is. Een tafel is een vrij statisch beest, je kunt de systeemweergave gebruiken USER_TABLES om te bepalen of het bestaat voordat u het verwijdert.

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. Heroku - ActiveRecord::StatementInvalid (PG::Error:ERROR:gevraagde kolom bestaat niet

  2. Hoe het aantal hops tussen bron en bestemming berekenen?

  3. Selecteer rij met meest recente datum per gebruiker

  4. Kan Eclipse-gegevensbron niet maken naar Oracle 12c met 12c jar. Maar 11g werkt