Ada kemungkinan besar bahwa hak istimewa untuk memilih dari tabel1 telah diberikan kepada sebuah peran, dan peran tersebut telah diberikan kepada Anda. Hak istimewa yang diberikan pada peran tidak tersedia untuk PL/SQL yang ditulis oleh pengguna, meskipun pengguna telah diberikan peran tersebut.
Anda sering melihat ini untuk pengguna yang telah diberikan peran dba pada objek yang dimiliki oleh sys. Seorang pengguna dengan peran dba akan dapat, katakanlah, SELECT * from V$SESSION
, tetapi tidak akan dapat menulis fungsi yang menyertakan SELECT * FROM V$SESSION
.
Cara mengatasinya adalah memberikan izin eksplisit pada objek yang dimaksud kepada pengguna secara langsung, misalnya, dalam kasus di atas, pengguna SYS harus GRANT SELECT ON V_$SESSION TO MyUser;