ayuda con select

chemian
28 de Octubre del 2005
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.

Carlos
28 de Octubre del 2005
Solo estoy especulando...

Los 'Grants' para el usuario en el procedimiento almacenado deben ser otorgados directamente, no mediante un 'Role'.

Otra cosa podria ser como se ha generado el SP: Invoker Rights vs. Definer rights.

Saludos.

Carlos.

CHEMIAN
28 de Octubre del 2005
Efectivamente es como dices, yo tengo permisos otorgados a traves de un Role, pero sin embargo en otro caso igual, teniendo los permisos otorgados con un role, si que me deja. Debe haber otra cosa a tener en cuenta. Lo unico que se me ocurre es que pueda ser que en el caso en que no funciona, accesdo directamante a las tablas de la bbdd, y en los que me funciona, acceso a las tablas, pero con un dblink, ya que son de otra bbdd.
Igual el acceso que hace desde un procedimiento, si estoy utilizando dblink es distincto al que hace si estoy en la misma bbdd.

Muchas gracias.