今天创建视图遇到一点问题,记录一下。
问题1:创建视图提示没有权限;ORA-01031: insufficient privileges
解决方案:登录sys用户,给需要创建视图的用户授予创建视图权限。
grant create any view to scott;
授权完后,可以正常创建视图。
问题2:视图创建完成后,其他用户访问视图会报表或视图不存在。ORA-00942: table or view does not exist
解决方案:直接访问视图访问不了,在视图前加上用户可以正常访问。即:
select * from v_users;--报错,ora-00942
--尝试加上前缀
select * from scott.v_users;--可以,能查询到数据
知道问题了,那就需要创建同义词,下面创建同义词。
问题3:创建同义词提示没有权限;ORA-01031: insufficient privileges
解决方案:登录sys用户,给需要创建同义词的用户授予创建同义词权限。
grant create synonym to scott;
同义词授权完成后,创建同义词。
create public synonym v_users for scott.v_users;
同义词创建完成后,可以正常访问视图了。