Oracle能否用SQL语言来检测某个表空间是否已经存在? 5
Oracle能否用SQL语言来检测某个表空间是否已经存在?比如nnc_data01表空间。因为Oracle好像不允许建立同名的表空间。谢谢!...
Oracle能否用SQL语言来检测某个表空间是否已经存在?比如nnc_data01表空间。因为Oracle好像不允许建立同名的表空间。谢谢!
展开
4个回答
展开全部
oracle查询已有的表空间名语句为:
select TABLESPACE_NAME from dba_tablespaces ;
查询表空间使用情况语句为:
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;
查看表空间物理文件的名称及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
展开全部
select dbms_metadata.get_ddl('TABLESPACE','表空间名称') FROM DUAL
可查看某个表空间是否存在
你这里的写法就是:select dbms_metadata.get_ddl('TABLESPACE','nnc_data01') FROM DUAL
可查看某个表空间是否存在
你这里的写法就是:select dbms_metadata.get_ddl('TABLESPACE','nnc_data01') FROM DUAL
追问
测试了没看出来有什么不一样的返回值。
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
3
追答
换一种方式:
SELECT Total.name "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name = Total.name and free.tablespace_name='表空间名';
表空间名在最后,你替换成‘nnc_data01’就行了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
oracle查询已有的表空间名语句为:
select TABLESPACE_NAME from dba_tablespaces ;
查询表空间使用情况语句为:
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name FROM dba_free_space GROUP BY tablespace_name;
查看表空间物理文件的名称及大小 :
SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM dba_data_files ORDER BY tablespace_name;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用SQL实现。
不允许创建相同的表空间名
不允许创建相同的表空间名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询