oracle怎样查看正在执行的存储过程?

2025-03-01 23:29:29
推荐回答(2个)
回答1:

1、在存储过程中加一个输出参数,执行完存储过程后,判断输出参数的值;

2、查看存储过程中处理数据后,你要的效果达到没有。

甲骨文股份有限公司(Oracle)是全球大型数据库软件公司,总部位于美国加州红木城的红木岸。在2008年,甲骨文股份有限公司是继Microsoft及IBM后,全球收入第三多的软件公司。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。

甲骨文股份有限公司于1989年正式进入中国,在北京、上海、广州和成都均设立了分支机构。 2016年1月,甲骨文表示会收购网站数据追踪服务商AddThis。2016年2月,甲骨文收购了云计算创业公司Ravello Systems。2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。

回答2:

1.确定正在运行的过程名
select name,locks,pins
from v$db_object_cache
where locks > 0 and pins > 0 and type='PROCEDURE';
NAME                  LOCKS     PINS
P_ETL_CRM_DESK     1        1

2.查询v$open_cursor 视图
select sid,sql_text
from v$open_cursor
where UPPER(sql_text) like '%P_ETL_CRM_DESK%'
SID     SQL_TEXT
143     begin   -- Call the procedure   p_etl_crm_desk(v_dtdate => :

3.也可以用v$access确定
select * from v$access where object='P_ETL_CRM_DESK';
SID     OWNER     OBJECT                    TYPE
143     KDCC     P_ETL_CRM_DESK     PROCEDURE

4.或者dba_ddl_locks
select session_id sid, owner, name, type,mode_held held, mode_requested request
from dba_ddl_locks
where name = 'P_ETL_CRM_DESK';
SID     OWNER     NAME                             TYPE                   HELD     REQUEST
143     KDCC     P_ETL_CRM_DESK     Table/Procedure/Type     Null        None