Seperti yang juga dikomentari Rene, sangat tidak biasa untuk memeriksa terlebih dahulu dan kemudian membuat tabel. Jika Anda ingin menjalankan kode sesuai dengan metode Anda, ini akan menjadi:
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;
Tapi saya lebih suka menangkap Pengecualian, menghemat beberapa baris kode yang tidak perlu:
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;
/