如:
  在机器A安装运行有两个应用程序a,b分别连接同一Oracle 数据库实例,问题是:
在Oracle服务器上可否判断表中的数据是a程序还是b程序更新? 或者可否自己写程序监视也行?

解决方案 »

  1.   

    select module from v$session 
    where logon_time between a and b
    先记住登陆时间,然后根据具体情况设置范围(a,b),module就是应用程序的名字。
      

  2.   

    非常感谢,不过为什么有时取出来的Module是空呢?只有用PL-SQL连接的Module才不为空!1 1423B968 13 27 844 1421048C 59 Q4W_CAMM 0 2147483644 INACTIVE DEDICATED 59 Q4W_CAMM DELL\Administrator 2404:2096 WORKGROUP\DELL DELL Q4XCNMGR.EXE USER 00 0 12FBC160 2665063154 0 0 2187 -1 0 0 0 2007-07-30 17:31:50 2 NO NONE NONE NO DEFAULT_CONSUMER_GROUP DISABLED ENABLED ENABLED 0
    2 PL/SQL Developer 1423AFF8 12 8 842 1421084C 59 Q4W_CAMM 3 2147483644 ACTIVE DEDICATED 59 Q4W_CAMM DELL\Administrator 3152:3184 WORKGROUP\DELL DELL PLSQLDev.exe USER 13276640 3291484087 13276640 3291484087 PL/SQL Developer 1190136663 SQL Window - select sys_context  3790295350 2190 -1 0 0 0 2007-07-30 17:25:52 0 NO NONE NONE NO DEFAULT_CONSUMER_GROUP DISABLED ENABLED ENABLED 0
    3 PL/SQL Developer 14239D18 10 22 840 142100CC 59 Q4W_CAMM 0 2147483644 INACTIVE DEDICATED 59 Q4W_CAMM DELL\Administrator 3152:3184 WORKGROUP\DELL DELL PLSQLDev.exe USER 00 0 1348D4F4 1674384472 PL/SQL Developer 1190136663 Main session 1773317990 2189 -1 0 0 0 2007-07-30 17:25:50 0 NO NONE NONE NO DEFAULT_CONSUMER_GROUP DISABLED ENABLED ENABLED 0
      

  3.   

    上面的1条记录就是通过客户端应程序连接的,Module值为?
      

  4.   

    确实有为空的情况,我的理解是Oracle自身的连接就会为空。
    program和module都记录了访问的应用程序名。
    object browser,sqlplus等等访问都会被记录近来。
      

  5.   

    补充一点,当type字段的值为'BACKGROUND'时一般来说MODULE为空
      

  6.   

    我的问题就是:现在根据上述语句:select module from v$session 可知道a或b应用程序连接到oracle实例,但有一个表table1字段field1被更新了,如何判断是程序a还是程序b更新的?
      

  7.   

    v$sqlarea 视图中怎么看出是a程序还是b程序?楼上的可否具体说明,刚执行找了下,没找着。:)