Các bảng hệ thống hoặc từ điển liên quan đến cơ sở dữ liệu (v_ $ sql trong trường hợp này) thuộc sở hữu của Oracle sys
người dùng và cần các đặc quyền đặc biệt để truy cập chúng. Bạn cần đăng nhập vào cơ sở dữ liệu oracle với tư cách là sysdba user
hoặc lấy các tài khoản riêng đó (DBA của bạn có thể giúp bạn điều này) để có quyền truy cập vào các chế độ xem từ điển dữ liệu.
Như đã đề cập trong bài viết này
The problem is that procedures don't respect roles; only directly granted rights
are respected. So, that means that table_owner has to regrant the right to select
Vì vậy, hãy thử cách sau để cấp SELECT trên tất cả chế độ xem từ điển để bạn có thể sử dụng nó trong các khối pl / sql của mình.
grant select any dictionary to USERNAME