
首先创新新用户abc,然后再给予表TT1的查询权限。
使用grant select on tt1 to abc,执行成功后发现。
登陆新用户abc,提示错误ora-00942: 表或视图不存在。
查看后发现执行查询的格式不正确。
select * from tt1正确的格式应该是使用建表用户名.表名来查询。如下:
select * from scott.tt1
那如果要不带建表用户名,需要先建同义词。
create public synonym tt1 for scott.tt1执行成功后,再到abc用户里执行select * from tt1就可以了
问题完美解决。
________________END______________
就是说 你 *** 作的那个表或试图 没有在你 *** 作的那个数据库下例如 你在master数据下 创建了 一张表
而你 *** 作的时候是在 另一个数据库下 *** 作的 切 没有明确的加上 某个数据库下的某张表 就会提示这样的提示
[ZK_PaymentDB].[dbo].[P_AreaSite]---》
ZK_PaymentDB 表示数据库
dbo 是表示一个用户 拥有系统管理员权限
P_AreaSite 就是要 *** 作的表了
首先确保那些报表或视图不存在的表or视图究竟存不存在,如果不存在,那就是导的有问题了,重新导入即可。如果确实有表,那就先试一下在PLSQL中重新编译一下存储过程,看下可不可以?
一般来说,如果是表和存储过程是属于一个USER的话,这样就可以解决了,
先试下吧,如果不行的话,那就有可能是分别属于不同的用户了
你可以查一下SELECT * FROM DBA_ORJECTS where object_name = '表名或存储过程名' 来查询一下,是否属于同一个USER,希望能对你有所帮助 。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)