我是Oracle的温和用户,我必须在指定的表空间中创建一些表,如下所示。
create table t_abc tablespace abc_tbspc as select * from abc;
create table t_xyz tablespace abc_tbspc as select * from xyz;
在通过作业运行这些作业(包含大约5个表在一个表空间中创建的文件)之后,我可以看到表t_abc
是在abc_tbspc
中创建的;但是当我查询t_xyz
时,表all_tables
被指定为null。不确定为什么第二个表不是在指定的表空间中创建的,即使表空间中有足够的空间。
答案 0 :(得分:1)
TABLESPACE_NAME
将为null:
您的代码不符合上述条件之一;你有没有遗漏一些细节?我运行了下面的查询,以查找TABLESPACE_NAME
为空但无法找到任何内容的其他情况。
select *
from dba_tables
where tablespace_name is null
and (temporary is null or temporary <> 'Y') -- #1
and (iot_type is null or iot_type <> 'IOT') -- #2
and (partitioned is null or partitioned <> 'YES') -- #3
and (owner, table_name) not in -- #4
(select owner, table_name from dba_external_tables)