Sql Server中删除库和表的语法?
比如:Sql中删除库的语法如下:if exists (select * from sysdatabases where name = 'bookDB')
drop database bookDB
gocreate database bookDB
go那么Oracel中删除表空间和用户的语法能不能这么写?有这样的语法吗?
比如:Sql中删除库的语法如下:if exists (select * from sysdatabases where name = 'bookDB')
drop database bookDB
gocreate database bookDB
go那么Oracel中删除表空间和用户的语法能不能这么写?有这样的语法吗?
删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;似乎没有这样和功能 ,示例表是否存在declare
v_isexist number(3,0):=0;
begin
select count(1) into v_isexist from sys.all_objects where owner = 'TEST' and object_type = 'TABLE' and object_name = 'TAB1';
if v_isexist>0 then
dbms_output.put_line('exists');
else
dbms_output.put_line('not exists');
end if;
end;
删除表空间
DROP TABLESPACE
删除用户
DROP USER
drop user user_name cascade;
oracle删除表空间
drop tablespace tablespace_name including contents and datafiles;
oracle中一般一个服务器只装一个数据库。这个数据库可以建立很多个方案,这些方案可以提供很多业务应用的支持。这些方案就对应到不同的用户上,用户之间的所属方案访问有严格的权限控制。这跟sqlserver有本质的区别。
都是DROP 。
Database是一组文件
Instance是一组内存
--创建过程
create or replace procedure delspace (sp_name in varchar2)
as
v_del1 varchar2(100);
v_name varchar2(100);
begin
v_name:=sp_name;
v_del1:='drop tablespace '||v_name ||' including contents and datafiles';execute immediate v_del1;--这里要注意权限,有的用户没有删除表空间的权限
exception
when others then
dbms_output.put_line(sqlerrm);
end;
--执行,删除表空间
declare
begin
delspace('sp_test2');
end;--查询表空间
select * from user_tablespaces where tablespace_name='SP_TEST2';--创建表空间
create tablespace sp_test2 datafile 'e:/sp_test2.dbf' size 10M;--创建表空间
--查询是否成功
select * from user_tablespaces where tablespace_name='SP_TEST';