您的位置:首页 > 其它

Create Table Space (Ora-00942 error:table or view does not exist)

2009-05-26 09:23 726 查看


CREATE OR REPLACE Procedure SP_Create_TableSpace(SpaceName in varchar2)
as
SpaceCount number;
strFile varchar2(200);
strSql varchar2(2000);
begin
Select Count(tablespace_name) into SpaceCount
From User_tablespaces
Where Upper(TableSpace_name)=upper(SpaceName);

if SpaceCount>0 then
strSql:='Drop Tablespace ' || SpaceName || ' Including Contents AND DATAFILES';
execute immediate strSql;
end if;
Select file_name into strFile
From dba_data_files
Where upper(TableSpace_name)='SYSTEM';

strFile:=substr(strFile,1,instr(strFile,'/',-1)) || SpaceName || '.ora';

strSql:='CREATE TABLESPACE ' || SpaceName ||' LOGGING
DATAFILE ''' || strFile || ''' SIZE 5M AUTOEXTEND
ON MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE
MANAGEMENT AUTO' ;
dbms_output.put_line(strSql);
execute immediate strSql;
end;

--解决了在存储过程中用dba_data_files(字典表)提示(Ora-00942 error:table or view does not exist)的问题。
GRANT SELECT ANY DICTIONARY TO test;
--再加增删表空间的权限
Grant Create Tablespace to test;
Grant Drop Tablespace to test;

--调用
Declare
name varchar2(18);
Begin
name:='Charge';
SP_Create_TableSpace(name);
End;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: