程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> 一個sybase函數(2)

一個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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved