[英]Create stored procedure with table from another schema throws PLS-00201
Oracle 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標識符'T2001_WRITEOFF',並且必須指向第二行。 無論我是否使用角色授予,此錯誤都是相同的。
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;
/
預先感謝您的幫助
吉姆
為了使角色權限適用於存儲過程,您可能需要查看oracle文檔中的authid current_user
。 也有幫助: http : //docs.oracle.com/cd/E11882_01/appdev.112/e25519/subprograms.htm#LNPLS682
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.