我的装置看起来像这样
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;,但显然你不是这么做的。
ERROR at line 1:
ORA-00942: table or view does not exist我的预期结果就是从那张桌子上得到所有的记录。就像如果是MySQL的话。
谢谢
发布于 2015-06-24 12:42:48
您正在从表空间中进行选择,这与所有者/架构名称不一样。这就是为什么。例如,表空间SYSTEM有所有者SYS。你可以从Sys.xxx中选择;
好的。
SELECT owner, tablespace_name, table_name
FROM all_tables
WHERE tablespace_name = 'MYSPACE';然后
select * from [ owner ].[ table_name ];(值得一提:选择..。来自dba_tables / user_tables)
发布于 2015-06-24 12:43:02
表不属于表空间。表空间是逻辑存储结构。在创建表(或索引)时,可以指定其内容应该是储存在的表空间。除非您正在执行DBA任务,否则不需要真正知道您的数据存储在哪个表空间中。
你可能只是混淆了术语。表属于图式。如果查询owner列而不是tablespace_name,可能会看到以下内容:
SQL> SELECT owner, table_name
     FROM all_tables
     WHERE tablespace_name = 'MYSPACE';
OWNER                      TABLE_NAME
-------------------------- ------------------------------
MYUSER                     MYTABLENAME
MYUSER                     MYOTHERTABLENAME然后,您可以使用
SELECT * FROM MYOWNER.MYTABLENAME;当然,如果所有者实际上是您,那么您就不需要在表名前面加上模式;您只需选择FROM MYTABLENAME。(您也可能有同义词或会话设置,从而使模式前缀变得不必要,但这有点偏离主题)。如果您拥有这个表,您也可以在USER_TABLES中看到它。
https://stackoverflow.com/questions/31026655
复制相似问题