create or replace procedure CREATETABLETEST is
str1 varchar2(1000);
str2 varchar2(5000);
v_count number(10);
begin
select count(1)
into v_count
from user_tables
where table_name = 'TESTTABLE';--查找表TESTTABLE是否存在
str1 := 'DROP TABLE ' || 'TESTTABLE';--删除表TESTTABLE
str2 := 'CREATE TABLE TESTTABLE AS SELECT * FROM DOCUMENTVIEW';--创建表TESTTABLE,将表DOCUMENTVIEW 的数据写入到TESTTABLE中
--判断表TESTTABLE是否存在,存在先删除表,不存在创建表
if (v_count < 0) then
execute immediate str1;
end if;
execute immediate str2;
end CREATETABLETEST;
--在测试该存储过程的时候,有可能在CREATE TABLE 处 提示 '权限不足' 的错误。给该数据用户一个创建表的权限就可以了。例:用户名 TESTUSER, 在SQLPLUS 中,以DBA权限进入,输入 grant createtable to TESTUSER; 即可解决该问题。