ORA-00942 Procedura nie widzi tabel SYS.DBA_

0

Gdy wykonuję samo zapytanie powiedzmy

SELECT tablespace_name, status, contents FROM dba_tablespaces;

jest ok, lecz gdy próbuję wyciągnąć dane kursorem:

CREATE OR REPLACE PROCEDURE test1 IS
  CURSOR cur IS 
  SELECT tablespace_name, status, contents FROM dba_tablespaces;
  z1 dba_tablespaces.tablespace_name%TYPE;
  z2 dba_tablespaces.status%TYPE;
  z3 dba_tablespaces.contents%TYPE;
BEGIN
  OPEN cur;
  LOOP
    EXIT WHEN cur%NOTFOUND;
    FETCH cur into z1,z2,z3;
    dbms_output.put_line(z1||', '||z2||', '||z3);
  END LOOP;
  CLOSE cur;
END test1;

dostaję taki łańcuszek błędów:
user image
Od razu mówię, że nic nie daje dodanie przedrostka SYS. np: sys.dba_tablespaces ani desperacyjne

GRANT ALL PRIVILEGES TO PUBLIC;

Dodam, że używam programu Oracle SQL Developer Version 3.0.02 Build MAIN-02.37
loguję się jako SYSTEM

próbowałem tak, siak, wspak :P i nic
W czym tkwi problem?

Edit:
W części "Public synonyms" bazy znalazłem tabelę DBA_TABLESPACES, to jej dane:
user image

0

Spróbuj nadać użytkownikowi SYSTEM uprawnienia do odczytu z sys.dba_tablespaces bezpośrednio. Teraz ma pewnie nadane poprzez rolę.

0

Z mojej strony SOA#1, czyli u mnie działa.
Ale user system to jest całkiem co innego jak user sys! To raz. Dwa to robienie cokolwiek na użytkowniku systemowym to jest stąpanie po cienkim lodzie.
Może napisz co chcesz osiągnąć

1 użytkowników online, w tym zalogowanych: 0, gości: 1