SQL> select table_name,tablespace_name,owner from dba_tables where owner='BOOKSTORE';
时间: 2024-02-25 10:58:51 浏览: 75
这是一条查询语句,用于查询所有属于BOOKSTORE用户的表的表名、表空间名和所有者名。可以在SQL*Plus或SQL Developer等SQL客户端中执行此查询。具体的查询语句如下所示:
```sql
SELECT table_name, tablespace_name, owner
FROM dba_tables
WHERE owner = 'BOOKSTORE';
```
执行此查询后,将返回所有属于BOOKSTORE用户的表的表名、表空间名和所有者名。
相关问题
SELECT tablespace_name, file_name FROM dba_data_files WHERE tablespace_name = 'USERS' AND owner = 'zydx_test' * ERROR at line 1: ORA-00904: "OWNER": 标识符无效 哪里有问题
这个错误的原因是 `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` 用户的所有数据文件了。
SELECT tablespace_name FROM dba_tablespaces WHERE OWNER='ospbiuser';报错"OWNER": 标识符无效
如果在执行 `SELECT tablespace_name FROM dba_tablespaces WHERE OWNER='ospbiuser';` 查询语句时出现 "OWNER": 标识符无效 错误,可能是因为 `dba_tablespaces` 视图中并不包含 OWNER 列。
在 Oracle 数据库中,每个视图都有自己的列,如果在视图中查询了不存在的列,就会出现 "标识符无效" 错误。因此,可以尝试使用其他列过滤出需要的信息,例如可以使用表空间的名称来过滤:
```
SELECT tablespace_name
FROM dba_tablespaces
WHERE tablespace_name IN (
SELECT tablespace_name
FROM dba_segments
WHERE owner = 'ospbiuser'
);
```
这个 SQL 语句先查询了 `dba_segments` 视图,过滤出所有属于 `ospbiuser` 用户的段(包括表、索引等),然后再根据这些段所在的表空间名称查询 `dba_tablespaces` 视图,获取所有相关的表空间信息。需要注意的是,执行该查询需要具有访问 `dba_segments` 视图和 `dba_tablespaces` 视图的权限。
阅读全文