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

Před vytvořením tabulky v Oracle zkontrolujte, zda existuje nebo neexistuje

Jak Rene také poznamenal, je docela neobvyklé nejprve zkontrolovat a poté vytvořit tabulku. Pokud chcete mít spuštěný kód podle vaší metody, bude to:

declare
nCount NUMBER;
v_sql LONG;

begin
SELECT count(*) into nCount FROM dba_tables where table_name = 'EMPLOYEE';
IF(nCount <= 0)
THEN
v_sql:='
create table EMPLOYEE
(
ID NUMBER(3),
NAME VARCHAR2(30) NOT NULL
)';
execute immediate v_sql;

END IF;
end;

Ale raději bych šel chytit na výjimku, ušetří vám to pár zbytečných řádků kódu:

declare
v_sql LONG;
begin

v_sql:='create table EMPLOYEE
  (
  ID NUMBER(3),
  NAME VARCHAR2(30) NOT NULL
  )';
execute immediate v_sql;

EXCEPTION
    WHEN OTHERS THEN
      IF SQLCODE = -955 THEN
        NULL; -- suppresses ORA-00955 exception
      ELSE
         RAISE;
      END IF;
END; 
/


  1. SQL – Najděte chybějící hodnoty int v většinou uspořádaných sekvenčních řadách

  2. Jak funguje MySQL CASE?

  3. SQLiteException žádná taková tabulka:ItemTable při kompilaci:Select_id,.... z ItemTable

  4. Jak může nastavení jazyka ovlivnit výsledky FORMAT() na serveru SQL (příklady T-SQL)