首先你需要刪除TYPE
。這將解決你的第一部分問題。 試試這個
Grant SELECT on PPZ_C.BTS_BAUTEIL_STATION_INFO to PPZ_W
現在當你執行上面的,你會得到進一步的錯誤:
ORA-02305: only EXECUTE, DEBUG, and UNDER privileges are valid for types
這意味着你不能對任何type
授予select
。只有EXECUTE,DEBUG和UNDER權限對類型有效。
所以,你可以使用EXECUTE
,當你希望它在SELECT語句中:
Grant EXECUTE on PPZ_C.BTS_BAUTEIL_STATION_INFO to PPZ_W;
編輯: 你的SELECT語句應該是:
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
我什麼用戶PPZ_W才能夠使這個選擇: –
SELECT ppz_bts.na_stat_anf(bts_bauteil_station_info( '', 'IG', '12345679'))FROM dual; –
我應該使用哪一種EXECUTE,DEBUG和UNDER? –