很简单,只要一条语句:
select substr(file_name,1,instr(file_name,'',-1)) from dba_data_files where rownum=1;
获取数据文件目录,可以完成使用脚本创建表空间,或添加数据文件等。可以使用PLSQL来实现,写个不太完善的例子。
conn / as sysdba
set serverout on
declare
v_path varchar2(255);
v_tbs_name varchar2(255):='testtbs';
v_tbs_filename varchar2(255):='test01.dbf';
v_tbs_filesize varchar2(255):='100m';
v_del boolean:=true;
v_sql varchar2(1024);
begin
select substr(file_name,1,instr(file_name,'',-1)) into v_path from dba_data_files where rownum=1;
v_sql := 'create tablespace '||v_tbs_name||' datafile '''||v_path||v_tbs_filename||''' size ' ||v_tbs_filesize;
--dbms_output.put_line( v_sql );
--删除同名表空间
if v_del=true then
execute immediate 'drop tablespace ' ||v_tbs_name||' including contents and datafiles';
end if;
execute immediate v_sql;
end;
/
--结果验证
set linesize 200
set pagesize 50
col tablespace_name for a30
col file_name for a100
select tablespace_name,file_name from dba_data_files order by 1;