甲骨文 10g。我是程序新手,所以也许我遗漏了一些明显的东西。
模式所有者 ABC 有表 T2001_WRITEOFF。首先,我已将 SIUD 授予 some_update_role,并将该角色授予开发人员用户 IJK。用户 IJK 然后为 ABC.T2001_WRITEOFF 创建了同义词 T2001_WRITEOFF;这适用于普通的 SQL DML 命令。
但是,我在这里的其他地方读到,通过角色授予的权限在存储过程中不起作用。我从 IJK 中删除了同义词;然后从 ABC 直接将 SIUD 授予 IJK。从 IJK 开始,正常的 SQL DML 可以工作。
当我尝试如下创建一个简单过程时,它会抛出 PLS-00201 identifier 'T2001_WRITEOFF' must be declared,并指向第二行。无论我是否使用角色授予,此错误都是相同的。
create or replace procedure woof1(
fooname in T2001_WRITEOFF.territory%TYPE, <=== error points here
bardesc IN T2001_WRITEOFF.ind_batch_submit%TYPE) IS
BEGIN
INSERT into T2001_WRITEOFF
VALUES ( fooname, bardesc);
END woof1;
/
提前感谢您的帮助
吉姆