जैसा कि रेने ने भी टिप्पणी की, पहले जांचना और फिर तालिका बनाना काफी असामान्य है। यदि आप अपनी विधि के अनुसार एक रनिंग कोड रखना चाहते हैं, तो यह होगा:
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;
लेकिन मैं इसके बजाय अपवाद पर पकड़ बनाना चाहता हूं, आपको कोड की कुछ अनावश्यक पंक्तियां बचाता है:
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;
/