统计分析-存储过程

前言

这是我曾经做用户统计行为分析时,写过的存储过程,将从网站通过js脚本抓取到的数据,通过存储过程的方式定时写入到数据库中,存储过程如下。

目录

  1. 存储过程
  2. 调用存储过程
  3. 以此博客相关的博客文章推荐

    1.存储过程

create or replace procedure pro_analyse(
                                        visitLocalTime in varchar2, --访问时间,
                                        configId varchar2,  --唯一ip
                                        title varchar2,--页面标题
                                        urlRef varchar2,--引用页面url
                                        url varchar2,--页面url
                                        visitorCountVisits number,--回访次数
                                        configOs varchar2,--操作系统
                                        configBrowserName varchar2,--浏览器名称
                                        configBrowserVersion varchar2,--浏览器版本
                                        configResolution varchar2,--分辨率
                                        configPdf varchar2,--是否支持pdf
                                        configFlash varchar2,--是否支持flash
                                        configJava varchar2,--是否支持java
                                        configDirector varchar2,--是否支持director
                                        configQuicktime varchar2,--是否支持quicktime
                                        configRealpayer varchar2,--是否支持realplayer
                                        configWindowMedia varchar2,--是否支持windowmedia
                                        configGears varchar2,--是否支持gears
                                        configSilerlight varchar2,--是否支持Slierlight
                                        configCookie varchar2 ,--是否支持cookie
                                        locationBrowserLang varchar2,--浏览器语言
                                        locationIp varchar2,--访客ip
                                        isRegister varchar2,--是否为注册用户(0,1)
                                        userId varchar2,  --用户id
                                        ipAddress varchar2,--根据ip获得用户地址
                                        ipAreas varchar2--根据ip获取用户通信地址
                                        
                                        )
 is
  visitTotalActions number;--访问次数;
  idvisit2  varchar2(256);--访客动作id
  id number(18);--访客动作主键
   link_id number(18);
begin
   select 
           t.visit_total_actions,t.idvisit  into visitTotalActions,idvisit2
       
  
   from 
            w_log_visit t
   where 
           to_char(t.visit_first_action_time, 'yyyy-mm-dd hh24:mi:ss') >= to_char(sysdate-1,'yyyy-mm-dd')||'23:59:59'
   and 
           t.config_id = configId;
 select seq_cms_all.nextval into id from dual;

  if visitTotalActions > 0 then--更新w_log_visit
           update 
                 w_log_visit a 
           set 
                 a.visit_total_actions=a.visit_total_actions+1,--访问次数+1
                 a.visit_exit_idaction_url=url,--退出页面url
                 a.visit_exit_idaction_name=title,--退出页面标题
                 a.visit_last_action_time=sysdate
           where a.idvisit=idvisit;
  else
      dbms_output.put_line('插入w_log_visit');
    INSERT INTO W_LOG_VISIT
        (IDVISIT, 
        IDVISITOR, 
        VISITOR_LOCALTIME, 
        VISITOR_RETURNING, 
        VISITOR_COUNT_VISITS, 
        VISITOR_DAYS_SINCE_LAST, 
        VISITOR_DAYS_SINCE_ORDER, 
        VISITOR_DAYS_SINCE_FIRST, 
        VISIT_FIRST_ACTION_TIME, 
        VISIT_LAST_ACTION_TIME, 
        VISIT_EXIT_IDACTION_URL, 
    		VISIT_EXIT_IDACTION_NAME, 
	  		VISIT_ENTRY_IDACTION_URL, 
	  		VISIT_ENTRY_IDACTION_NAME, 
	  		VISIT_TOTAL_ACTIONS, 
	  		VISIT_TOTAL_TIME, 
	  		VISIT_GOAL_CONVERTED, 
	  		VISIT_GOAL_BUYER, 
	  		REFERER_TYPE, 
	  		REFERER_NAME, 
	  		REFERER_URL, 
	  		REFERER_KEYWORD, 
	  		CONFIG_ID, 
	  		CONFIG_OS, 
	  		CONFIG_BROWSER_NAME, 
	  		CONFIG_BROWSER_VERSION, 
	  		CONFIG_RESOLUTION, 
	  		CONFIG_PDF, 
	  		CONFIG_FLASH, 
	  		CONFIG_JAVA, 
	  		CONFIG_DIRECTOR, 
	  		CONFIG_QUICKTIME, 
	  		CONFIG_REALPLAYER, 
	  		CONFIG_WINDOWSMEDIA, 
	  		CONFIG_GEARS, 
	  		CONFIG_SILVERLIGHT, 
	  		CONFIG_COOKIE, 
	  		LOCATION_IP, 
	  		LOCATION_BROWSER_LANG, 
	  		LOCATION_COUNTRY, 
	  		LOCATION_CONTINENT, 
	  		CUSTOM_VAR_K1, 
	  		CUSTOM_VAR_V1, 
	  		CUSTOM_VAR_K2, 
	  		CUSTOM_VAR_V2, 
	  		CUSTOM_VAR_K3, 
	  		CUSTOM_VAR_V3, 
	  		CUSTOM_VAR_K4, 
	  		CUSTOM_VAR_V4, 
	  		CUSTOM_VAR_K5, 
	  		CUSTOM_VAR_V5, 
	  		LOCATION_PROVIDER)
	  	VALUES
	  		(id,--主键 取序列自动增长
	  		userId, --IDVISITOR 咱存放userid
	  		to_char(visitLocalTime,'hh24:mm:si'),--当前访问时间
	  		'0',--visitor_returning 是否回访---暂时没有统计 
	  		visitorCountVisits,--回访次数visitor_count_visits, 
	  		0,--距离最后一次访问相差天数visitor_days_since_last        暂无统计, 
	  		0,--visitor_days_since_order, 
	  		0,--距离第一次访问相差的天数 visitor_days_since_first, 
	  		to_date(to_char(visitLocalTime,'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD HH24:MI:SS'),--第一次访问时间 visit_first_action_time
	  		to_date(to_char(visitLocalTime,'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD HH24:MI:SS'),--最后一次访问时间 visit_last_action_time
	  		url,--退出网站url  visit_exit_idaction_url, 
	  		title,--退出网站name visit_exit_idaction_name, 
	  		url,--进入网站url visit_entry_idaction_url, 
	  		title,--进入网站name visit_entry_idaction_name, 
	  		1,--访问次数 visit_total_actions, 
	  		0,--访问总时长  visit_total_time  暂无统计, 
	  		0,--visit_goal_converted, 
	  		0,--visit_goal_buyer, 
	  		1,--referer_type, 
	  		0,--referer_name, 
	  		urlRef,--referer_url 引用页面url, 
	  		'',--referer_keyword, 
	  		configId,--config_id, 
	  		configOs,--config_os 操作系统, 
	  		configBrowserName,--#config_browser_name#, 浏览器名称
	  		configBrowserVersion,--#config_browser_version#, 
	  		configResolution,--#config_resolution#, 
	  		configPdf,--#config_pdf#, 
	  		configFlash,--#config_flash#, 
	  		configJava,--#config_java#, 
	  	  configDirector,--	#config_director#, 
	  		configQuicktime,--#config_quicktime#, 
	  		configRealpayer,--#config_realplayer#, 
	  		configWindowMedia,--#config_windowsmedia#, 
	  		configGears,--#config_gears#, 
	  		configSilerlight,--#config_silverlight#, 
	  		configCookie,--#config_cookie#, 
	  		locationIp,--#location_ip#,
	  		locationBrowserLang,--#location_browser_lang#, 
	  		'',--#location_country#, 
	  		'',--#location_continent#, 
	  		'',--#custom_var_k1#, 
	  		'',--#custom_var_v1#, 
	  		ipAddress,--#custom_var_k2#, 
	  	  ipAreas,--#custom_var_v2#, 
	  		'',--#custom_var_k3#, 
	  		'',--#custom_var_v3#, 
	  		'',--#custom_var_k4#, 
	  		'',--#custom_var_v4#, 
	  		'',--#custom_var_k5#, 
	  		'',--#custom_var_v5#, 
	  		'cn');--#location_provider#
  
  end if;--插入w_log_link_visit_action
 
   select seq_cms_all.nextval into link_id from dual;
     dbms_output.put_line('插入w_log_link_visit ');
        INSERT 
  		INTO 
  			W_LOG_LINK_VISIT_ACTION
  			(IDLINK_VA, 
  			IDVISITOR, 
  			SERVER_TIME, 
  			IDVISIT, 
  			IDACTION_URL, 
  			IDACTION_URL_REF, 
  			IDACTION_NAME, 
  			IDACTION_NAME_REF, 
  			TIME_SPENT_REF_ACTION)
  		VALUES(
  			link_id,--#idlink_va#,主键 
  			userId,--#idVisitor#, 
  			to_date(to_char(visitLocalTime,'yyyy-mm-dd HH:mm:ss'),'YYYY-MM-DD HH24:MI:SS'),--#serverTime#
  			id,--#idVisit#, 
  			url,--#idActionUrl#, 
  			urlRef,--#idActionUrlRef#, 
  			title,--#idActionName#, 
  			'',--#idActionNameRef#, 
  			0);--#timeSpentRefAction# 网站停留时间
 commit;
 EXCEPTION 
    when dup_val_on_index then 
      dbms_output.put_line('对于数据库表中的某一列,该列已经被限制为唯一索引,程序试图存储两个重复的值 '); 
   WHEN OTHERS THEN 
      dbms_output.put_line('异常 ');
   ROLLBACK; 

end;

   2.调用存储过程:

call pro_analyse(
                                        '2013-06-05 13:09:56',--visitLocalTime in varchar2, --访问时间,
                                        '108524137',--configId varchar2,  --唯一ip
                                        '95598首页',--title varchar2,--页面标题
                                        'www.baidu.com',--urlRef varchar2,--引用页面url
                                        'index.html',--url varchar2,--页面url
                                        '0',--visitorCountVisits number,--回访次数
                                        'windows',--configOs varchar2,--操作系统
                                        'google',--configBrowserName varchar2,--浏览器名称
                                        '1.9',--configBrowserVersion varchar2,--浏览器版本
                                        '1024*768',--configResolution varchar2,--分辨率
                                        1,--configPdf varchar2,--是否支持pdf
                                        1,--configFlash varchar2,--是否支持flash
                                        1,--configJava varchar2,--是否支持java
                                        1,--configDirector varchar2,--是否支持director
                                        1,--configQuicktime varchar2,--是否支持quicktime
                                       1,-- configRealpayer varchar2,--是否支持realplayer
                                       1,-- configWindowMedia varchar2,--是否支持windowmedia
                                       1,-- configGears varchar2,--是否支持gears
                                        1,--configSilerlight varchar2,--是否支持Slierlight
                                        1,--configCookie varchar2 ,--是否支持cookie
                                        'cn',--locationBrowserLang varchar2,--浏览器语言
                                        '10.85.24.137',--locationIp varchar2,--访客ip
                                        '1',--isRegister varchar2,--是否为注册用户(0,1)
                                        '2013060512142123',--userId varchar2,  --用户id
                                        '北京市',--ipAddress varchar2,--根据ip获得用户地址
                                        '电信'--ipAreas varchar2--根据ip获取用户通信地址

);

3.以此博客相关的博客文章推荐

      1:那些年我写过的存储过程与计划任务

      2:如何创建数据库链接DBLINK

      3:统计分析-存储过程

      4.那些年我写过的最长sql语句

猜你喜欢

转载自zhengyunfei.iteye.com/blog/2049990