你是要在程序中执行还是直接在oracle的管理工具中执行? drop table tab1 cascade; drop table tab2 cascade; drop table tab3 cascade;
我想从方案 test 中检索出所有名字带log的表(table),然后将其删除 select 会检索出一大堆表,然后用drop删除检索出来的表,在;sql plus 中操作。
procedure CLEARMYLOG IS temp_name VARCHAR2(50); my_sqlText VARCHAR2(100); CURSOR TABNAME IS SELECT TNAME FROM TAB WHERE TNAME LIKE '%LOG_2007%'; BEGIN OPEN TABNAME; while TRUE loop FETCH TABNAME INTO temp_name;
IF TABNAME%NOTFOUND THEN EXIT; ELSE my_sqlText := 'drop table ' || temp_name; EXECUTE IMMEDIATE my_sqlText; END IF; end loop; END; end;
drop table tab1 cascade;
drop table tab2 cascade;
drop table tab3 cascade;
select 会检索出一大堆表,然后用drop删除检索出来的表,在;sql plus 中操作。
IS
temp_name VARCHAR2(50);
my_sqlText VARCHAR2(100);
CURSOR TABNAME IS
SELECT TNAME FROM TAB WHERE TNAME LIKE '%LOG_2007%';
BEGIN
OPEN TABNAME;
while TRUE loop
FETCH TABNAME INTO temp_name;
IF TABNAME%NOTFOUND THEN
EXIT;
ELSE
my_sqlText := 'drop table ' || temp_name;
EXECUTE IMMEDIATE my_sqlText;
END IF;
end loop;
END;
end;