【发布时间】:2018-04-10 03:15:00
【问题描述】:
我在 PLSQL 过程中有一个光标可以从 DBA_TABLES 和 USER_TABLES 中进行选择。
CURSOR c1 IS
SELECT DISTINCT(DB.TABLE_NAME) FROM DBA_TABLES DB, USER_TABLES UT WHERE DB.TABLE_NAME = UT.TABLE_NAME AND DB.IOT_TYPE IS NOT NULL;
BEGIN
OPEN c1;
FETCH c1 INTO IOT_TABLE;
CLOSE c1;
但是程序抱怨
“ORA-00942 表或视图不存在”
在执行期间。
【问题讨论】:
-
执行过程的用户必须有权限从这个视图中选择,除非过程是用 AUTHID DEFINER 子句创建的,在这种情况下定义者(所有者)必须有权限来查询这个视图.向您的 DBA 寻求适当的权利。
-
我尝试创建带有 AUTHID DEFINER 子句的过程,但仍然出现同样的错误:CREATE OR REPLACE PROCEDURE DB_MIGRATION AUTHID DEFINER AS