簡體   English   中英

使用另一個架構中的表創建存儲過程會拋出PLS-00201

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM