SELECT tablespace_name, file_name FROM dba_data_files WHERE tablespace_name = 'USERS' AND owner = 'zydx_test' * ERROR at line 1: ORA-00904: "OWNER": 标识符无效 哪里有问题
时间: 2023-11-22 20:56:45 浏览: 168
这个错误的原因是 `OWNER` 不是 `dba_data_files` 表中的一个有效列名。可以使用 `USER_NAME` 列代替 `OWNER` 列。尝试以下查询:
```
SELECT tablespace_name, file_name
FROM dba_data_files
WHERE tablespace_name = 'USERS'
AND USER_NAME = 'zydx_test';
```
这样应该就可以找到表空间名为 `USERS` 且属于 `zydx_test` 用户的所有数据文件了。
相关问题
使用如下sql语句"select * from ( Select a.tablespace_name, (a.bytes- b.bytes) "表空间使用大小(BYTE)", a.bytes/(1024*1024*1024) "表空间大小(GB)", b.bytes/(1024*1024*1024) "表空间剩余大小(GB)", (a.bytes- b.bytes)/(1024*1024*1024) "表空间使用大小(GB)", to_char((1 - b.bytes/a.bytes)*100,'99.99999') || '%' "使用率" from (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) b where a.tablespace_name = b.tablespace_name union all select c.tablespace_name, d.bytes_used "表空间使用大小(BYTE)", c.bytes/(1024*1024*1024) "表空间大小(GB)", (c.bytes-d.bytes_used)/(1024*1024*1024) "表空间剩余大小(GB)", d.bytes_used/(1024*1024*1024) "表空间使用大小(GB)", to_char(d.bytes_used*100/c.bytes,'99.99999') || '%' "使用率" from (select tablespace_name,sum(bytes) bytes from dba_temp_files group by tablespace_name) c, (select tablespace_name,sum(bytes_cached) bytes_used from v$temp_extent_pool group by tablespace_name) d where c.tablespace_name = d.tablespace_name ) order by tablespace_name"查询表空间相关信息时,可查询到TEMP表空间信息,使用sql语句"SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 AS SIZE_MBFROM DBA_DATA_FILES;"时却未查到名为TEMP的表空间,请论述原因和解决办法,可以多思考一会
原因是因为TEMP表空间不属于DBA_DATA_FILES,而属于DBA_TEMP_FILES。DBA_DATA_FILES只包含数据文件,而DBA_TEMP_FILES包含临时表空间的数据文件。
要查询TEMP表空间的信息,应使用以下SQL语句:
SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024 AS SIZE_MB FROM DBA_TEMP_FILES;
这样就可以查到TEMP表空间的信息了。
select a.TABLESPACE_NAME "TBNAME",a.USED_RATE "GetTableSizePused",b.contents "GetTablesType", a.space "GetTableSizeTotal",a.USED_SPACE "GetTableSizeUsed",a.FREE_SPACE "GetTableFreeSize" from (SELECT D.TABLESPACE_NAME,total_SPACE space,BLOCKS SUM_BLOCKS,SPACE - NVL(FREE_SPACE, 0) "USED_SPACE", ROUND(((SPACE - NVL(FREE_SPACE, 0) )/ total_SPACE) * 100, 2) "USED_RATE", FREE_SPACE "FREE_SPACE" FROM (SELECT TABLESPACE_NAME, ROUND(SUM(bytes) / (1024 * 1024), 2) SPACE, ROUND(SUM(greatest(bytes,maxbytes)) / (1024 * 1024), 2) total_SPACE, SUM(BLOCKS) BLOCKS FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D,(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) ORDER BY "USED_RATE" DESC) a,dba_tablespaces b where a.tablespace_name = b.tablespace_name and a.tablespace_name not in (select distinct tablespace_name from dba_undo_extents)查询的是什么
这是一个 SQL 查询语句,用于查询 Oracle 数据库中表空间的使用情况。查询结果包括表空间的名称(TBNAME)、表空间已用空间占总空间的百分比(GetTableSizePused)、表空间类型(GetTablesType)、表空间的总大小(GetTableSizeTotal)、表空间已用空间(GetTableSizeUsed)和表空间的可用空间(GetTableFreeSize)。其中,表空间类型是从 DBA_TABLESPACES 视图中获取的。
这个查询语句会排除回滚段表空间(UNDO 表空间)的信息。
阅读全文