首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Sybase >

sybase函数事例(2)

2012-07-03 
sybase函数例子(2)? Sybase函数例子:--功能描述: 系统初始化时调用,生成当天的分表后缀。参数:表名 --系统

sybase函数例子(2)

? Sybase函数例子:

--  功能描述  : 系统初始化时调用,生成当天的分表后缀。参数:表名 --              系统初装后通过手工(非定时任务)调用存储过程创建分表 --  访问的表  :                                                                                              --  版本信息  :                                                        --  修改记录  : --              <修改人>          <修改时间>          <描述> --              KF37616           2011-02-18           新建 --********************************************************************** CREATE OR REPLACE FUNCTION fn_hw_PreStatGetTableIdx_Init(     IN p_TableName  VARCHAR(60) ) RETURNS VARCHAR(10) BEGIN        --0、变量定义     DECLARE v_sReturn     VARCHAR(10);   --返回值:分表后缀     DECLARE v_iSub_Flag   INT;           --分表标识(0:不分表,1:分表)     DECLARE v_iSub_Type   INT;           --分表方式(0:按天,1:按月,2:按周,...)     DECLARE v_icount      INT;     DECLARE v_iCurrent    INT;         --1、初始化变量     SET v_sReturn = ;     SET v_iSub_Flag = 0;     SET v_iSub_Type = 0;     SET v_icount = 0;     SET v_iCurrent = 0;         --2、判断传入的表名称是否在配置表中配置     SELECT COUNT(*) INTO v_icount FROM cfg_sub_table_para WHERE sTableName = p_TableName;     IF ( v_icount <> 0 ) THEN         SELECT iFlag,iType INTO v_iSub_Flag,v_iSub_Type FROM cfg_sub_table_para             WHERE sTableName = p_TableName;     ELSE         --如果没有配置默认为不分表         SET v_sReturn = 0;         RETURN v_sReturn;     END IF;         --3、当不分表的时候,直接返回0,如果分表,返回初始化当天的表     IF ( v_iSub_Flag = 0 ) THEN         SET v_sReturn = 0;     ELSE         CASE v_iSub_Type             WHEN 0 THEN    --按天分表                 SET v_iCurrent = DATEDIFF(DAY,1970-01-01 00:00:00,GETDATE());                 SET v_sReturn = CAST(v_iCurrent AS VARCHAR(128));         ELSE             --不在取值范围内默认为不分表             SET v_sReturn = 0;         END CASE;     END IF;         RETURN (v_sReturn); END; 

?

热点排行