Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Überprüfen Sie, ob die Tabelle vorhanden ist oder nicht, bevor Sie sie in Oracle erstellen

Wie Rene auch kommentierte, ist es ziemlich ungewöhnlich, zuerst zu prüfen und dann die Tabelle zu erstellen. Wenn Sie einen laufenden Code gemäß Ihrer Methode haben möchten, ist dies:

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;

Aber ich fang lieber die Ausnahme an, das spart dir einige unnötige Codezeilen:

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; 
/