视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
pl/sql,dba-ebs常用
2020-11-09 16:18:46 责编:小采
文档

包括了: 查正在运行的SQL语句, 某个服务中的session 表空间管理 锁状态 数据库中当前活跃用户信息 。。 这些代码来至于dbadmin 项目 是一个美国的DBA 写的 不错,在googlde code中的 有 PL/SQL DBA g_sid v$session.SID%type := '-1'; g_serial# v$sess

包括了:
查正在运行的SQL语句,
某个服务中的session
表空间管理
锁状态
数据库中当前活跃用户信息
。。
这些代码来至于dbadmin 项目 是一个美国的DBA 写的 不错,在googlde code中的 有






PL/SQL DBA $velocityCount-->
 g_sid v$session.SID%type := '-1';
 g_serial# v$session.SERIAL#%type;
 g_terminal v$session.TERMINAL%type;
 g_username v$session.username%type;

 function get_object_by_id(p_object_id in number) return varchar2 is
 l_object_name varchar2(1000);
 begin
 select owner || '.' || object_name
 into l_object_name
 from dba_objects
 where object_id = p_object_id;
 
 return l_object_name;
 exception
 when others then
 return p_object_id;
 end;

 function get_objects_locked_by_session(p_sid in number) return varchar2 is
 l_result varchar2(1000) := '';
 cursor locks is
 select get_object_by_id(id1) locked_object
 from v$lock
 where type = 'TM'
 and sid = p_sid;
 begin
 for c in locks loop
 if l_result is not null then
 l_result := l_result || chr(10);
 end if;
 l_result := l_result || c.locked_object;
 end loop;
 return l_result;
 end;

 procedure get_session_info(p_sid in number) is
 begin
 select serial#, terminal, username
 into g_serial#, g_terminal, g_username
 from v$session
 where sid = p_sid;
 end get_session_info;

 function get_session_serial#(p_sid in number) return v$session.SERIAL#%type is
 begin
 if p_sid != g_sid then
 get_session_info(p_sid);
 end if;
 return g_serial#;
 end get_session_serial#;

 function get_session_terminal(p_sid in number)
 return v$session.terminal%type is
 begin
 if p_sid != g_sid then
 get_session_info(p_sid);
 end if;
 return g_terminal;
 end get_session_terminal;

 function get_session_username(p_sid in number)
 return v$session.username%type is
 begin
 if p_sid != g_sid then
 get_session_info(p_sid);
 end if;
 return g_username;
 end get_session_username;

 function get_sids(p_process in varchar2) return varchar2 is
 cursor users_sids is
 select sid, module, program
 from v$session s
 where s.process = p_process
 or s.process like p_process || ':%';
 
 result varchar2(1000);
 begin
 result := '';
 for c in users_sids loop
 if c.program = 'JDBC Thin Client' then
 result := 'Web sessions';
 else
 if result is not null then
 result := result || chr(10);
 end if;
 result := result || to_char(c.sid) || ' ' ||
 nvl(c.module, 'Main Menu');
 end if;
 end loop;
 return result;
 end;
--还有很多 见附件 。。。 

下载本文
显示全文
专题