Sql 当前用户使用的功能和过程

Sql 当前用户使用的功能和过程,sql,oracle,plsql,Sql,Oracle,Plsql,有没有办法在pl/sql中找到我(当前用户)使用的过程? 我的意思是,我想以一种观点或其他方式来做这件事 SELECT * FROM USER_SOURCE WHERE USER = 'myuser'; 问题在于user='myuser'。我做错了什么?如果我没有做错,那么您应该对照owner列 SELECT * FROM ALL_SOURCE WHERE OWNER = 'myuser'; 所有者列表示对象的所有者。因此,通过上面的查询,您将获得您或myuser拥有的存储对象,但这不会

有没有办法在pl/sql中找到我(当前用户)使用的过程? 我的意思是,我想以一种观点或其他方式来做这件事

SELECT * FROM  USER_SOURCE WHERE USER = 'myuser';

问题在于user='myuser'。我做错了什么?

如果我没有做错,那么您应该对照
owner

SELECT * FROM  ALL_SOURCE WHERE OWNER = 'myuser';
所有者
列表示对象的
所有者
。因此,通过上面的查询,您将获得您或
myuser
拥有的存储对象,但这不会让您知道这些存储对象最近是否被使用过

看这里

编辑:

不知道为什么会出现这种奇怪的错误,但您仍然可以使用
user\u source
类似于

SELECT * FROM  USER_SOURCE 
WHERE type in ('PROCEDURE','FUNCTION');

监视sql执行的一般方法是使用V$sql和V$SQLTEXT视图。

SELECT
   module, 
   sql_text , 
   u.username
  FROM
   sys.v_$sql s, 
   sys.all_users u 
  WHERE
   s.parsing_user_id = u.user_id 
   and UPPER(u.username) = UPPER('YOUR_USER_NAME') 
   -- AND S.SQL_TEXT like '%SOME PROCUDER NAME%'
更具体地说,您可以使用给定的程序。

多次调用该过程后,您可以通过以下方式查看执行日志:

select username, owner, obj_name, action_name 
from dba_audit_trail where obj_name = 'PROCEDUR_NAME';

添加了oracle标记,因为您提到了
pl/sql
您所说的“由我使用”是什么意思?我想您是对的,但现在我得到:sql错误:ORA-00904:“所有者”:无效identifier@user140102真奇怪。只需将其更改为
owner='myuser'
@user140102,顺便问一下,您使用的是哪个版本?此外,请检查您是否有权查询
所有源代码查看?同样的情况也在发生。我使用的是4.0.0.13版。我有权限。当我输入“where 1=1”时。@user140102,只需执行
select*from ALL_SOURCE
并查看
owner
列是否存在。
select username, owner, obj_name, action_name 
from dba_audit_trail where obj_name = 'PROCEDUR_NAME';
SELECT  grantee, owner, table_name, type, grantor, privilege 
FROM USER_TAB_PRIVS 
WHERE upper(grantee) in ('PUBLIC', 'MYUSER');