Oracle - ayuda con select

 
Vista:

ayuda con select

Publicado por chemian (75 intervenciones) el 27/10/2005 10:05:36
Hola, alguien sabria decirme porque esta select me funciona si la ejecuto en sqlplus y si la ejecuto en un procedimiento me da este error: Error ora00942 la tabla o vista no existe.
En ambos casos entro con el mismo usuario, el cual tiene permisos sobre las vistas del sistema.

Select /*+ RULE */ lk.SID,
SE.SERIAL#,
se.username,
se.OSUser,
se.Machine,
SE.COMMAND,
se.STATUS,
se.SERVER,
se.PROCESS,
UPPER(SE.PROGRAM),
SE.MODULE,
SE.TYPE,
SE.SQL_HASH_VALUE,
SE.ROW_WAIT_OBJ#,
SE.ROW_WAIT_FILE#,
SE.ROW_WAIT_BLOCK#,
SE.ROW_WAIT_ROW#,
SE.LOGON_TIME,
DECODE(lk.TYPE,'TX','Transaction','TM','DML','UL','PL/SQL User Lock',lk.TYPE),
DECODE(lk.lmode,0,'None',1,'Null',2,'Row-S (SS)',3,'Row-X (SX)',4,'Share',5,'S/Row-X (SSX)',6,'Exclusive',TO_CHAR(lk.lmode)),
DECODE(lk.request,0,'None',1,'Null',2,'Row-S (SS)',3,'Row-X (SX)',4,'Share',5,'S/Row-X (SSX)',6,'Exclusive',TO_CHAR(lk.request)),
TO_CHAR(lk.id1),
TO_CHAR(lk.id2),
ob.owner,
ob.object_type,
ob.object_name,
lk.Block,
se.lockwait,
sysdate,
FROM v$lock lk,dba_objects ob,v$session se
WHERE lk.TYPE IN ('TM','UL')
AND lk.SID=se.SID
AND lk.id1=ob.object_id
AND UPPER(ob.owner) <> 'SYS'

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con select

Publicado por Rodolfo Reyes (445 intervenciones) el 27/10/2005 16:52:59
Probablemente tienes permisos sobre la vista por medio de algun role.

Por alguna razon cuando creas un procedimiento, el usuario que esta creando el procedimiento tiene que tener permisos directos sobre estas vistas.

En pocas palabras ingresa con el usuario SYS y con este usuario dale permisos directos sobre las vistas al usuario que sera dueño del procedimiento, luego intenta crearlo de nuevo, y estoy seguro que te funcionara.

Exactamente lo mismo me paso, y me volvi loco tratando de entender porque en SQL Plus funcionaba y al crear un procedimiento daba estos errores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con select

Publicado por chemian (75 intervenciones) el 28/10/2005 08:07:16
Muchas gracias, pero no lo tengo muy claro, y te explico porque.

Este procedimiento, trata de obtener la informacion de la queri que te mostraba en el primer mensaje, cada 5 segundos.
en un principio esta pensado para hacer la queri sobre estas vistas, pero a traves de un dblink, es decir, que despues del nombre de la vista, en el procedimiento le concateno el nombre del dblink de la BBDD que quiera comprobar en este momento.
cuando ejecuto el procedimiento sobre alguan bbdd que no sea la propietaria del mismo, me funciona sin ningun problema, y solo en el caso en que las vistas sean las del propio propietario del procedimiento, es decir, que no sea necesario concatenar el dblink porque estoy en local, es cuando falla.
Por esto no tengo tan claro que sea por el role, porque tengo exactamente los mismos permisos para el usuario con el que se conecta el dblink.

¿tu que opinas?

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar