`
wang_zhi_peng2007
  • 浏览: 255573 次
  • 性别: 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`表中有两个字段...

    SybaseIQ_15.1_中文用户定义函数指南.pdf

    ### Sybase IQ 15.1 用户定义函数指南解析 #### 概述 Sybase IQ 15.1 的用户定义函数(User Defined Functions, UDFs)指南是一份详尽的技术文档,主要介绍了如何在Sybase IQ 15.1数据库系统中创建和使用自定义...

    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的基础知识、常见技术、实用技巧以及实例解析,帮助初学者和进阶者...

    SQL_Server从入门到精通_benzhu

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

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

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

    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