oracle 10gr2 based on debian现在我想要在安装完毕后运行一个建表空间的脚本
要能够判断是否已经存在表空间,如果存在,删除原来的表空间和相关的文件表空间有3类:
用户表空间
temp表空间
undo表空间希望脚本能自动执行,不需要人工干预,不要报错比如 create tablespace AAA XXX等待oracle报错是不行的,因为这样我就不能将这个tablespace恢复到最初的状态
要能够判断是否已经存在表空间,如果存在,删除原来的表空间和相关的文件表空间有3类:
用户表空间
temp表空间
undo表空间希望脚本能自动执行,不需要人工干预,不要报错比如 create tablespace AAA XXX等待oracle报错是不行的,因为这样我就不能将这个tablespace恢复到最初的状态
如果drop前对象不存在,报错不可避免。如:
dorp tablespace tbl_aa;
create tablespace tbl_aa...--2、当然,你可以在pl/sql中使用动态SQL来完成,但很少有人这样做。如,创建一个tb01表空间:
DECLARE
cnt PLS_INTEGER;
BEGIN
SELECT COUNT(*)
INTO cnt
FROM dba_tablespaces t
WHERE t.tablespace_name = upper('tb01');
IF cnt > 0 THEN
EXECUTE IMMEDIATE 'drop tablespace tb01 including contents and datafiles';
END IF;
EXECUTE IMMEDIATE 'create tablespace tb01 datafile
''D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\TB01.DBF'' size 10m';
END;
/
--用户表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k
/
--undo表空间
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M
/
--temp表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
/http://www.adp-gmbh.ch/ora/sql/create_tablespace.html
就像
create table t2 if not exists之类的
drop tablespace tablespace_name include content
如果两个表空间之间存在完整性约束
drop tablespace tablespace_name include content cascade constraints