Re: Selecting from dynamic performance views in PL/SQL





Andreas Sheriff wrote:
> Database Version: 8.1.5.0.0
>
> Granted SELECT_CATALOG_ROLE to user.
> 07_DICTIONARY_ACCESSIBLITY is default
>
> SQL> select * from v$instance;
>
> Works.
>
> SQL> DECLARE
> 2 v_startup_time DATE;
> 3 BEGIN
> 4 /* First, see if the database was restarted and store the new startup
> value
> 5 if it were */
> 6 select startup_time into v_startup_time from v$instance;
> 7 END;
> 8 /
>
> PL/SQL procedure successfully completed.
>
> Works.
>
> SQL> create or replace procedure os_collectstats
> 2 AS
> 3 v_startup_time DATE;
> 4 BEGIN
> 5 /* First, see if the database was restarted and store the new startup
> value
> 6 if it were */
> 7 select startup_time into v_startup_time from v$instance;
> 8 END;
> 9 /
>
> Warning: Procedure created with compilation errors.
>
> SQL> show errors
> Errors for PROCEDURE OS_COLLECTSTATS:
>
> LINE/COL ERROR
> -------- -----------------------------------------------------------------
> 7/5 PL/SQL: SQL Statement ignored
> 7/50 PLS-00201: identifier 'SYS.V_$INSTANCE' must be declared
>
> Yields said errors.
>
> I've tried putting v$instance in quotes ("V$INSTANCE"), but got the same
> error.
>
> Anyone know why this CREATE PROCEDURE didn't work?
> Did I forget something?
>
> I don't have access to metalink, but am actively searching the web for an
> answer. Nothing so far.
>
> --
> Andreas
> Oracle 9i Certified Professional
> Oracle 10g Certified Professional
> Oracle 9i Certified PL/SQL Developer
>
>
> "If you don't eat your meat, you cannot have any pudding.
> "How can you have any pudding if you don't eat your meat?!?!"
> ---
>
> WARNING:
> DO NOT REPLY TO THIS EMAIL
> Reply to me only on this newsgroup

Anonymous PL/SQL blocks can access permissions granted through roles;
procedures, triggers and functions cannot. When you converted your
anonymous block to a procedure you effectively removed all permissions
granted to the user through roles.

Grant select on sys.v_$instance directly to the user, not through a
role. You'll find your procedure compiles without error.


David Fitzjarrell

.



Relevant Pages

  • ORA-01092: ORACLE instance terminated. Disconnection forced
    ... I know that Oracle recommends AUTO, but I just want to test ... SQL> CREATE TABLESPACE "RBS01" ... Database mounted. ... SQL> CREATE ROLLBACK SEGMENT rollback1 TABLESPACE rbs01 ...
    (comp.databases.oracle.server)
  • Re: Anleitung für Oracle Upgrdae?
    ... To upgrade Oracle databases from a previous release directly to Oracle9i ... For more information about upgrading a database, ... For RAC installations, ensure that there is at least 50 MB of free space ... SQL> SHOW PARAMETER PFILE; ...
    (de.comp.datenbanken.misc)
  • Re: OOP/OOD Philosophy
    ... > Because if you don't Oracle will print something you don't want to see. ... The database should not print anything at all. ... > Great but this discussion was about Standand SQL. ... Transactions and locking work together. ...
    (comp.object)
  • Re: Characters losts during Import (8.1.6) -> (9.2.0.6)
    ... # sets the NLS_LANG environment value to the same value as the database ... Copyright 1982, 2002, Oracle Corporation. ... SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET'; ...
    (comp.databases.oracle.server)
  • Re: dbdebunk Quote of Week comment
    ... > a lot of really bad SQL programmers. ... But SQL does not have a pointer data type or the ... > being told to design a database. ... But why is little Cindy Lou Who employee ...
    (comp.databases.theory)