Rất có thể các đặc quyền để chọn từ table1 đã được cấp cho một vai trò và vai trò đó đã được cấp cho bạn. Các đặc quyền được cấp cho một vai trò không có sẵn cho PL / SQL do người dùng viết, ngay cả khi người dùng đã được cấp vai trò.
Bạn thấy điều này rất nhiều đối với những người dùng đã được cấp vai trò dba trên các đối tượng thuộc sở hữu của sys. Người dùng có vai trò dba sẽ có thể SELECT * from V$SESSION
, nhưng sẽ không thể viết một hàm bao gồm SELECT * FROM V$SESSION
.
Cách khắc phục là cấp quyền rõ ràng cho đối tượng được đề cập đến trực tiếp cho người dùng, ví dụ:trong trường hợp trên, người dùng SYS phải GRANT SELECT ON V_$SESSION TO MyUser;