declare aa number; begin select count(1) into aa from user_tables s where s.table_name='yourTAbleName'; if aa>1 then drop table yourTAbleName; end if end;
创建存储过程: CREATE OR REPLACE PROCEDURE drop_table( v_tablename IN VARCHAR2 ) IS CURSOR c1 IS SELECT table_name FROM user_tables; BEGIN FOR c1_rec IN c1 LOOP IF v_tablename = c1_rec.table_name THEN EXECUTE IMMEDIATE 'DROP TABLE '||v_tablename; END IF; END LOOP; END;删除表TEST: call drop_table('TEST');
用匿名块的话: declarename varchar2(10);begin select table_name into name from user_tables where table_name=...;if name=null then... else...
管它是否存在,一律先删后建
如果返回值=1;
drop talbe yourTAbleName;
aa number;
begin
select count(1) into aa from user_tables s where s.table_name='yourTAbleName';
if aa>1 then
drop table yourTAbleName;
end if
end;
CREATE OR REPLACE PROCEDURE drop_table(
v_tablename IN VARCHAR2
)
IS
CURSOR c1
IS
SELECT table_name FROM user_tables;
BEGIN
FOR c1_rec IN c1 LOOP
IF v_tablename = c1_rec.table_name THEN
EXECUTE IMMEDIATE 'DROP TABLE '||v_tablename;
END IF;
END LOOP;
END;删除表TEST:
call drop_table('TEST');
declarename varchar2(10);begin
select table_name
into name
from user_tables
where table_name=...;if name=null then...
else...