Для начала нужно удалить TYPE
. Это исправит вашу первую часть проблемы. Попробуйте это
Grant SELECT on PPZ_C.BTS_BAUTEIL_STATION_INFO to PPZ_W
Теперь, когда вы выполните вышеуказанное, вы получите сообщение об ошибке:
ORA-02305: для типов действительны только привилегии EXECUTE, DEBUG и UNDER.
Это означает, что вы не можете предоставить select
ни одному type
. Для типов допустимы только привилегии EXECUTE, DEBUG и UNDER.
Таким образом, вы можете использовать EXECUTE
, когда хотите, чтобы он использовался в инструкции select:
Grant EXECUTE on PPZ_C.BTS_BAUTEIL_STATION_INFO to PPZ_W;
РЕДАКТИРОВАТЬ: ваш оператор выбора должен быть:
SELECT ppz_bts.na_stat_anf( PPZ_C.BTS_BAUTEIL_STATION_INFO ('','IG','12345679') ) FROM dual;
См. Демонстрацию:
CREATE OR REPLACE TYPE myschema.array_t is varray(2) of number ;
---Running in My schema
SQL> select * from table(array_t('1','2'));
COLUMN_VALUE
------------
1
2
--Granted from myschema to otherschema
SQL> grant execute on myschema.array_t to othersschema ;
--Running in otherschema
SQL> select * from table(myschema.array_t('1','2'));
COLUMN_VALUE
------------
1
2
person
XING
schedule
19.01.2017