Я подключен к базе данных Oracle 10g с пользовательским «пользователем», когда я запускаю select на DBA_ROLES, он отображает результат без каких-либо проблем, но когда выбор находится внутри процедуры, он возвращает ошибку ORA -00942: таблица или вид не существуетOracle select privilege on DBA_ROLES
Пользователь не имеет некоторых привилегий? почему можно выполнить SELECT, но не включать его внутри процедуры?
SQL> SELECT COUNT(*) FROM DBA_ROLES;
COUNT(*)
----------
18
SQL> CREATE OR REPLACE PROCEDURE tst_role IS
v VARCHAR2(100);
BEGIN
v := '';
FOR rec IN (SELECT ROLE FROM DBA_ROLES) LOOP
v := rec.role;
DBMS_OUTPUT.put_line(v);
END LOOP;
END;
/
Warning: Procedure created with compilation errors.
SQL> show errors
Errors for PROCEDURE TST_ROLE:
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/13 PL/SQL: SQL Statement ignored
5/30 PL/SQL: ORA-00942: table or view does not exist
6/3 PL/SQL: Statement ignored
6/8 PLS-00364: loop index variable 'REC' use is invalid
Я отправил DBA, и моя проблема исправлена сейчас, спасибо! – mcha