首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在tablespace_name中指定SQLPlus

如何在tablespace_name中指定SQLPlus
EN

Stack Overflow用户
提问于 2015-06-24 12:31:45
回答 2查看 6.6K关注 0票数 4

我的装置看起来像这样

代码语言:javascript
运行
复制
SQL> SELECT tablespace_name, table_name
     FROM all_tables
     WHERE tablespace_name = 'MYSPACE';

TABLESPACE_NAME            TABLE_NAME
-------------------------- ------------------------------
MYSPACE                    MYTABLENAME
MYSPACE                    MYOTHERTABLENAME

现在我想要SELECT * FROM MYSPACE.MYTABLENAME;,但显然你不是这么做的。

代码语言:javascript
运行
复制
ERROR at line 1:
ORA-00942: table or view does not exist

我的预期结果就是从那张桌子上得到所有的记录。就像如果是MySQL的话。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-24 12:42:48

您正在从表空间中进行选择,这与所有者/架构名称不一样。这就是为什么。例如,表空间SYSTEM有所有者SYS。你可以从Sys.xxx中选择;

好的。

代码语言:javascript
运行
复制
SELECT owner, tablespace_name, table_name
FROM all_tables
WHERE tablespace_name = 'MYSPACE';

然后

代码语言:javascript
运行
复制
select * from [ owner ].[ table_name ];

(值得一提:选择..。来自dba_tables / user_tables)

票数 6
EN

Stack Overflow用户

发布于 2015-06-24 12:43:02

表不属于表空间。表空间是逻辑存储结构。在创建表(或索引)时,可以指定其内容应该是储存在的表空间。除非您正在执行DBA任务,否则不需要真正知道您的数据存储在哪个表空间中。

你可能只是混淆了术语。表属于图式。如果查询owner列而不是tablespace_name,可能会看到以下内容:

代码语言:javascript
运行
复制
SQL> SELECT owner, table_name
     FROM all_tables
     WHERE tablespace_name = 'MYSPACE';

OWNER                      TABLE_NAME
-------------------------- ------------------------------
MYUSER                     MYTABLENAME
MYUSER                     MYOTHERTABLENAME

然后,您可以使用

代码语言:javascript
运行
复制
SELECT * FROM MYOWNER.MYTABLENAME;

当然,如果所有者实际上是您,那么您就不需要在表名前面加上模式;您只需选择FROM MYTABLENAME。(您也可能有同义词或会话设置,从而使模式前缀变得不必要,但这有点偏离主题)。如果您拥有这个表,您也可以在USER_TABLES中看到它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31026655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档