• oracle 存储过程中调用同义词报错“表和视图不存在”


    grant all on 同义词表名 to public这样一搞就OK了

    创建了同义词,直接查询都是正常的,但存储过程中一调用就报“”表和视图不存在“”,
    因为"在存储过程中访问公共同义词,必须直接对用户授权,而不能通过角色授权"。

    见 http://blog.csdn.net/linminqin/article/details/6671785

    比如我 test 用户的存储过程中要调用 ca 的表,在 test 创建 ca 的同义词后需要

    grant all on 同义词表名 to public
    
    • 1

    另:

    如果创建了很多同义词,每一个都赋值很麻烦,可以采用 sql 方式查询,然后复制黏贴运行。

    select 'grant select on '||SYNONYM_NAME || ' to PUBLIC; ' from dba_synonyms WHERE OWNER='TEST'
    
    • 1

    将结果复制出来运行即可。

    grant 权限的时候可以用 all,而查询只需要用 select,所以可以只赋予 select

    见 http://blog.itpub.net/77580/viewspace-212827/

    转载自:https://blog.csdn.net/weixin_41287692/article/details/86599853

  • 相关阅读:
    OpenCV 简介
    无缝滚动
    Date 与 switch的运用
    js object(对象)
    arr.sort()排序方法
    删除
    评分
    延时提示框
    数字相加求和
    自定义右键菜单
  • 原文地址:https://www.cnblogs.com/jyj666/p/15397999.html
Copyright © 2020-2023  润新知