`
wang_zhi_peng2007
  • 浏览: 251343 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sybase函数例子(1)

 
阅读更多

Sybase

create or replace function fn_hw_PreStatGetTableIdx 
( 
    in p_sTblName  varchar(60), 
    in p_BeginTime varchar(20), 
    in p_EndTime   varchar(20) 
) 
returns varchar(4000) 
begin 
    declare v_iFlag      int; 
    declare v_iType      int; 
    declare v_icount     int; 
    declare v_iStarttime int; 
    declare v_iEndTime   int; 
    declare v_iCurrent   int; 
    declare v_iTmpTime   int; 
    declare v_sTblSuff   varchar(4000); 
    
    set v_sTblSuff = 0; 
    
    --判断传入的表名称是否在配置表中配置 
    select count(*) into v_icount from cfg_sub_table_para where sTableName = p_sTblName; 
    
    --从配置表获取分表方式 
    if ( v_icount <> 0 ) then 
        select iFlag,iType into v_iFlag,v_iType from cfg_sub_table_para 
            where sTableName = p_sTblName; 
    else 
        --如果没有配置默认为不分表 
        set v_sTblSuff = 0; 
        return v_sTblSuff; 
    end if; 
    
    --当不分表的时候,直接返回0,如果分表,将起始结束时间范围内的表后缀返回 
    if ( v_iFlag = 0 ) then 
        set v_sTblSuff = 0; 
    else 
        case v_iType 
        when 0 then    --按天分表 
            if(p_BeginTime = ) then 
                set v_iCurrent = datediff(day,1970-01-01 00:00:00,getdate() + 1); 
                set v_sTblSuff = cast(v_iCurrent as varchar(128)); 
                return v_sTblSuff; 
            end if; 
            
            set v_iStarttime = datediff(day,1970-01-01 00:00:00,convert(datetime,p_BeginTime,20)); 
            set v_iEndtime = datediff(day,1970-01-01 00:00:00,convert(datetime,p_EndTime,20)); 
            
            --循环将按天分表的表后缀拼接成字符串,以","分隔。 
            if ( v_iStarttime = v_iEndtime ) then 
                set v_sTblSuff = cast(v_iStarttime as varchar(128)); 
            else 
                set v_iTmpTime = v_iStarttime; 
                --拼接返回值 
                while ( v_iTmpTime <> (v_iEndtime + 1) ) loop 
                    if ( v_sTblSuff = 0 ) then 
                        set v_sTblSuff = cast(v_iTmpTime as varchar(128)); 
                    else 
                        set v_sTblSuff = v_sTblSuff||,||cast(v_iTmpTime as varchar(128)); 
                    end if; 
                    
                    set v_iTmpTime = v_iTmpTime + 1; 
                end loop; 
            end if; 
        else 
            --不在取值范围内默认为不分表 
            set v_sTblSuff = 0; 
        end case; 
    end if; 
    
    --返回结果 
    return v_sTblSuff; 
end;

 

分享到:
评论

相关推荐

    Sybase ASA函数

    1. **`sp_columns`**:此函数用于检索指定表中的列信息,包括列名、数据类型、最大长度等。例如,`sp_columns 'account'`将显示表`account`的所有列及其属性。在给定的例子中,我们可以看到`account`表中有两个字段...

    Sybase function

    以下是一些重要的Sybase函数及其用途: #### 1. 数据类型转换函数 - `CAST()`:将一个表达式的值转换为指定的数据类型。 - `CONVERT()`:用于数据类型的转换,可以转换日期和时间格式。 #### 2. 数学函数 - `ABS()...

    Mysql、oracle、Sybase数据库两列合并成一列的sql语句

    在这个例子中,`field1`和`field2`分别代表要合并的两个字段名,`tableName`表示存储这些字段的表名,而`combined_column`则是合并后的新列名。 ### 3. Sybase中的两列合并 在Sybase数据库中,同样可以使用加号`+`...

    rationl robot 连接 sybase 数据库的代码

    3. **SQL执行**:`sqlexec`函数中传入的SQL语句应符合Sybase数据库的语法规范。在这个例子中,使用的是存储过程调用的形式。 4. **资源管理**:确保在完成所有数据库操作后正确地关闭连接是非常重要的,这有助于...

    Sybase编程中出现的错误及其解决办法

    1. 在 SYBASE11.5 中,组合两个定长的 char(x)="aaa",char(y)="bbb"; char(x)+char(y)!="aaabbb" 在 SYBASE 中,存储一个 char(n) 时,在其真实值后会补上相应数量的空格。例如,在上面的例子中,存储在 @var_1 中...

    PB常用函数

    1. **函数分类**:了解函数的分类,如数学函数、字符串函数、文件I/O函数等,有助于快速定位所需功能。 2. **函数参数**:每个函数都有其特定的参数,理解参数的意义和顺序对于正确调用至关重要。 3. **返回值**:...

    powerbuilder9.0生成二维码动态库与例子.zip

    PowerBuilder 9.0 是 Sybase 公司推出的一种基于对象的编程环境,主要支持数据窗口、事件驱动和面向对象编程。它以其强大的数据库连接能力、图形用户界面(GUI)设计工具和数据窗口组件而闻名,使得开发者能够快速...

    php sybase_fetch_array使用方法

    而本函数可以说是 sybase_fetch_row() 的加强函数,除可以将返回列及数字索引放入数组之外,还可以将文字索引放入数组中。使用范例 这是 joey@samaritan.com (22-Feb-1999) 所提出的例子 实例1:复制代码 代码如下:&...

    sybase游标使用

    1. 统计过去一周(从统计日期算起的7天内)光网IPTV用户的重复申告情况,列出前十大用户的信息,包括:账号(dir_num)、申告次数(appeal_total)、历次申告次数(appeal_num)、历次申告时间(complaint_time)、...

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    OraLoad类的int ProcLoad(Connection in_conn, String args[])函数就可以实现类似功能了。例如 new OraLoad.ProcLoad( null, "-u test -p testpwd -i 127.0.0.1 -s ora10 -f test.txt -t tmp_test -c , -e gbk"); ...

    PB9下的多编码转换例子

    PB9,全称为PowerBuilder 9,是一款由Sybase公司(现已被SAP收购)开发的面向对象的可视化编程工具,主要用于构建企业级的数据库应用系统。在PB9中,编码转换是一个重要的功能,尤其在处理来自不同源的数据时,如Web...

    PB入门简易100例子.rar_PB学习入门_camera6qr_pb实例_pb简易节奏_pb谱

    PowerBuilder(PB)是一款强大的关系型数据库开发工具,由Sybase公司开发,广泛应用于企业级应用系统的构建。"PB入门简易100例子"是一份针对初学者的资源包,旨在帮助新接触PowerBuilder的开发者快速熟悉其基本操作...

    PB教程(例子,常用技术)

    PB,全称PowerBuilder,是一款由Sybase公司开发的、基于Windows操作系统的快速应用程序开发工具,主要用于构建数据库应用系统。本教程将深入讲解PB的基础知识、常见技术、实用技巧以及实例解析,帮助初学者和进阶者...

    PB9+TCP/ip通讯服务利用winSocket的例子(简单,测试通过)

    标题 "PB9+TCP/ip通讯服务利用winSocket的例子(简单,测试通过)" 指的是一个使用PowerBuilder 9(PB9)编程语言,并结合Windows Socket API(通常称为winSocket)实现TCP/IP通信的示例项目。这个项目已经过测试并确认...

    SQL_Server从入门到精通_benzhu

    个例子以帮助您理解它们 这些例子是适用于Oracle7 Sybase SQL Server Microsoft Access Microsoft Query 我们会用高亮显示指出它们的相似之处以及不同点读者们会 觉得这些例子更具有适用性和趣味性

    SQL.21日自学通(中文版)

    并举出多个例子以帮助您理解它们 这些例子是适用于 Oracle7 Sybase SQL Server MicrosoftAccess Microsoft Query 我们会用高亮显示指出它们的相似之处以及不同点 读者们会觉得这些例子更具有适用性和趣味性

    SQL自学通(数据库自学的首选)

    个例子以帮助您理解它们这些例子是适用于Oracle7 Sybase SQL Server Microsoft Access Microsoft Query 我们会用高亮显示指出它们的相似之处以及不同点读者们会 觉得这些例子更具有适用性和趣味性

    SQL21日自学通--王永宏

    个例子以帮助您理解它们 这些例子是适用于 Oracle7 Sybase SQL Server Microsoft Access Microsoft Query 我们会用高亮显示指出它们的相似之处以及不同点 读者们会 觉得这些例子更具有适用性和趣味性

    SQL21日自学通教材

    个例子以帮助您理解它们 这些例子是适用于Oracle7 Sybase SQL Server Microsoft Access Microsoft Query 我们会用高亮显示指出它们的相似之处以及不同点读者们会 觉得这些例子更具有适用性和趣味性

Global site tag (gtag.js) - Google Analytics