oracle – 在程序包编译中绕过“表或视图不存在”

Oracle数据库中有两个模式.

由我控制的MYSCHEMA.

OTHERSCHEMA不受我控制.

我只知道我可以从OTHERSCHEMA.OTHEROBJECT的select *中获得结果.但是,OTHEROBJECT是同义词.

在我的包中,我有一个类似的声明

insert into MYSCHEMA.MYTABLE(COL1) select COL1 from OTHERSCHEMA.OTHEROBJECT;

但它给了我表或视图不存在.

我该如何解决或绕过这个问题?谢谢!

我假设您有权通过与直接授权相对的角色来选择otherschema.otherobject(例如将所有其他内容授予myschema).如果是这种情况,则此角色中的权限不会用于确定PL / sql块中的权限.

另请参见How Roles Work in PL/SQL Blocks(Oracle Docu,在定义块中使用的角色中使用定义者权限:

All roles are disabled in any named PL/sql block (stored procedure,function,or trigger) that executes with definer’s rights. Roles are not used for privilege checking and you cannot set roles within a definer’s rights procedure.)

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...