Oracle 10g. Я новичок в процедурах, поэтому, возможно, мне не хватает чего-то очевидного.Создание хранимой процедуры с таблицей из другой схемы. PLS-00201
У владельца схемы ABC есть таблица T2001_WRITEOFF. Сначала я предоставил SIUD для some_update_role и предоставил эту роль разработчику IJK. Затем пользователь IJK создал синоним T2001_WRITEOFF для ABC.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;
/
Заранее спасибо за помощь
JimR
Если вы упустили синоним 'T2001_WRITEOFF.territory% TYPE', это не сработает. Вместо этого попробуйте 'ABC.T2001_WRITEOFF.territory% TYPE'. – Toru
Нет, извините, те же результаты. – JimR