在SQL*Plus里面已经显示创建表成功了,可是后面为什么又说表不存在呢?
答案:3 悬赏:0 手机版
解决时间 2021-01-10 04:30
- 提问者网友:锁深秋
- 2021-01-09 11:54
在SQL*Plus里面已经显示创建表成功了,可是后面为什么又说表不存在呢?
最佳答案
- 五星知识达人网友:七十二街
- 2021-01-09 12:52
出现错误的原因是创建User和LoginInfo这两个表的账号是UserManAdmin,而在下面进行查询的时候,登陆账号并不是UserManAdmin,如果没有创建同义词或者,表名前没有加上 创建者的前缀就会报"表或视图不存在"的错误,解决办法有2种:
1,创建同义词:CREATE SYNONYM Users FOR UserManAdmin.Users;
CREATE SYNONYM LoginInfo FOR UserManAdmin.LoginInfo;
2,查询时带上 创建者 前缀:FROM UserManAdmin.Users u INNER JOIN UserManAdmin.LoginInfo l ...
1,创建同义词:CREATE SYNONYM Users FOR UserManAdmin.Users;
CREATE SYNONYM LoginInfo FOR UserManAdmin.LoginInfo;
2,查询时带上 创建者 前缀:FROM UserManAdmin.Users u INNER JOIN UserManAdmin.LoginInfo l ...
全部回答
- 1楼网友:老鼠爱大米
- 2021-01-09 14:19
加一个用户名,比如scott.LoginInfo
试试看
试试看
- 2楼网友:枭雄戏美人
- 2021-01-09 14:12
你创建表的时候shi
CREATE TABLE UserManAdmin.Users ...
也就是这个 Users 表, 是被创建在 UserManAdmin 下面了。
那个 LoginInfo 的, 也是一样。
我不知道你当前这个登录用户, 是不是 UserManAdmin
你可以在创建表以后
DESC Users
DESC LoginInfo
来看看 这两个表的 表结构。
如果报错, 提示表不存在的话, 那么可能是你当前的登录用户名, 不是 UserManAdmin 的缘故了。
你可以在 后面的查询语句那里
FROM UserManAdmin.Users u INNER JOIN UserManAdmin.LoginInfo l ...
来指定, 是UserManAdmin 下面的表, 而不是当前用户的表。追问可是课本要求实现连接查询,以SYSTEM用户登录,然后执行这段代码。追答我已经把出现问题的原因告诉你了。
你现在是想怎么样呢?
是 把
CREATE TABLE UserManAdmin.Users .
修改 为
CREATE TABLE Users .
?
还是 把
FROM Users u INNER JOIN LoginInfo l
修改为
FROM UserManAdmin.Users u INNER JOIN UserManAdmin.LoginInfo l
?
还是 想 不修改上面的语句?
不修改语句的话, 你可以创建 同义词
CREATE SYNONYM Users FOR UserManAdmin.Users;
CREATE SYNONYM LoginInfo FOR UserManAdmin.LoginInfo;
如果你什么语句也不想改, 同义词也不想创建, 那我就没办法了。追问可以了。。谢谢指点~!
CREATE TABLE UserManAdmin.Users ...
也就是这个 Users 表, 是被创建在 UserManAdmin 下面了。
那个 LoginInfo 的, 也是一样。
我不知道你当前这个登录用户, 是不是 UserManAdmin
你可以在创建表以后
DESC Users
DESC LoginInfo
来看看 这两个表的 表结构。
如果报错, 提示表不存在的话, 那么可能是你当前的登录用户名, 不是 UserManAdmin 的缘故了。
你可以在 后面的查询语句那里
FROM UserManAdmin.Users u INNER JOIN UserManAdmin.LoginInfo l ...
来指定, 是UserManAdmin 下面的表, 而不是当前用户的表。追问可是课本要求实现连接查询,以SYSTEM用户登录,然后执行这段代码。追答我已经把出现问题的原因告诉你了。
你现在是想怎么样呢?
是 把
CREATE TABLE UserManAdmin.Users .
修改 为
CREATE TABLE Users .
?
还是 把
FROM Users u INNER JOIN LoginInfo l
修改为
FROM UserManAdmin.Users u INNER JOIN UserManAdmin.LoginInfo l
?
还是 想 不修改上面的语句?
不修改语句的话, 你可以创建 同义词
CREATE SYNONYM Users FOR UserManAdmin.Users;
CREATE SYNONYM LoginInfo FOR UserManAdmin.LoginInfo;
如果你什么语句也不想改, 同义词也不想创建, 那我就没办法了。追问可以了。。谢谢指点~!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯