CREATE PROCEDURE dbo.select_data
AS
BEGIN
--------------定义变量用于存储具体的数据信息------------------------------------------
declare @ge_date varchar(50)
declare @ge_organ varchar(50)
declare @ge_ccy varchar(50)
declare @ge_zhihang varchar(50)
declare @ge_busi varchar(50)
declare @ge_money decimal(38,6)
declare @ge_ccyU decimal(38,6)
declare @ge_ccyB decimal(38,6)
declare @ge_ccyC decimal(38,6)
declare @tablename varchar(50)
--------------定义变量用于进行初始化判断----------------------------------------------
declare @organ varchar(50)
declare @busi varchar(50)
declare @zhihang varchar(50)
select top 1 @organ=ge_organ,@busi=ge_busi,@zhihang=zhihang from ge_data
--------------建立游标cure,对整个表按照机构字段、要素字段、支行字段进行排序----------
declare cure cursor for select ge_data.ge_date, ge_data.ge_organ, ge_data.ge_ccy, ge_data.ge_busi, ge_data.ge_money, ge_data.tablename, ge_data.zhihang from ge_data order by ge_organ,ge_busi,zhihang
open cure
fetch cure into @ge_date,@ge_organ,@ge_ccy,@ge_busi,@ge_money,@tablename,@ge_zhihang
set @ge_ccyU=0,@ge_ccyB=0,@ge_ccyC=0
if @zhihang=@ge_zhihang
begin
-----------------判断机构和要素是否相同,相同则判断币种的余额存放到不同的变量中----------------------
if(@busi=@ge_busi and @organ=@ge_organ)
begin
if @ge_ccy='01'
begin
set @ge_ccyU=@ge_money
end
if @ge_ccy='91'
begin
set @ge_ccyB=@ge_money
end
if @ge_ccy='90'
begin
set @ge_ccyC=@ge_money
end
end
else
begin
-------------首先向支行表中插入该纪录,然后改变机构和要素的初始化值,再处理该条纪录的币种余额--------------------------
insert into ge_day (ge_date,ge_organ,ge_busi,ge_ccyC,ge_ccyU,ge_ccyB,tablename,ge_zhihang) values(@ge_date,@ge_organ,@ge_busi,@ge_ccyC,@ge_ccyU,@ge_ccyB,@tablename,@ge_zhihang)
set @busi=@ge_busi,@organ=@ge_organ
if @ge_ccy='01'
begin
set @ge_ccyU=@ge_money
end
if @ge_ccy='91'
begin
set @ge_ccyB=@ge_money
end
if @ge_ccy='90'
begin
set @ge_ccyC=@ge_money
end
end
end
else
begin
-----------首先改变初始化变量,然后处理该条数据纪录的币种余额------------------
set @zhihang=@ge_zhihang,@busi=@ge_busi,@organ=@ge_organ
if @ge_ccy='01'
begin
set @ge_ccyU=@ge_money
end
if @ge_ccy='91'
begin
set @ge_ccyB=@ge_money
end
if @ge_ccy='90'
begin
set @ge_ccyC=@ge_money
end
-----------一个支行导入完成调用存储过程处理数据-------------------------------
end
-------------------关闭游标释放游标-----------------------------------------------
close cure
deallocate cursor cure
END
分享到:
相关推荐
- **事务处理**:利用存储过程处理复杂的事务逻辑。 - **错误处理**:在存储过程中捕获异常,并进行相应的错误处理。 总之,Sybase存储过程是一种强大的工具,能够显著提高SQL Server数据库应用程序的性能和可维护...
Sybase存储过程是Sybase数据库管理系统中的一个重要特性,它允许开发者编写一组预编译的SQL语句和控制流语句,以实现复杂的数据处理逻辑。这些存储过程可以被多次调用,提高了数据库操作的效率,并提供了更好的数据...
### Sybase 中实现分页技术的存储过程 #### 背景介绍 Sybase 是一款高性能的关系型数据库管理系统,广泛应用于金融、电信等对数据处理性能有极高要求的领域。在实际的应用场景中,常常需要从数据库中获取大量的数据...
综上所述,编写和优化Sybase存储过程需要综合考虑数据库设计、查询优化、事务处理等多个方面。通过遵循上述经验和方法,可以有效提升数据库应用的性能和稳定性,为用户提供更高效、更可靠的服务。
在IT领域,数据库存储过程是实现复杂业务逻辑和优化性能的重要工具。Sybase数据库系统,作为一款企业级的关系型数据库管理...理解JNI调用约定和数据库对Java的支持特性,有助于顺利地将Java集成到Sybase存储过程中。
Sybase数据库作为一种广泛应用于企业环境的数据库管理系统,其存储过程的性能优化显得尤为重要。本文将探讨如何通过优化存储过程中的游标使用,以及利用Sybase Adaptive Server 12.0及以上版本引入的新特性,来提升...
在Sybase数据库中,存储过程的编写是一项关键任务,它涉及到系统的性能和可维护性。以下是一些关于Sybase数据库存储过程的编写经验和方法: 首先,对于跨库操作,建议在当前库中创建视图(View)来封装外部库的...
### Sybase ASE V15.0 存储过程相关知识点 #### 一、概述 Sybase ASE (Adaptive Server Enterprise) 是一款高性能的关系型数据库管理系统,由Sybase公司开发并维护。Sybase ASE V15.0是该系列的一个重要版本,其中...
【Sybase IQ 存储过程详解】 Sybase IQ 是一种高效的数据仓库系统,它支持存储过程,这是一种在数据库中预编译的SQL语句集合,能够提升应用性能并简化复杂操作。存储过程允许用户将一系列操作封装起来,方便重复...
总结,SYBASE IQ的存储过程是数据库管理和应用开发中的重要组成部分,它们提供了灵活的数据处理能力,可以实现复杂业务逻辑,同时通过有效的权限管理确保数据安全。通过深入理解和熟练运用存储过程,开发者能够提高...
特别是当涉及到复杂的业务逻辑或者数据处理时,Oracle数据库中的存储过程能够提供更高效和安全的解决方案。本话题将详细讲解如何使用Java调用带有参数的Oracle存储过程,并获取存储过程返回的集合。 首先,Oracle...
这份文档集提供了关于Sybase数据库使用的详细信息,涵盖了命令、函数、存储过程以及错误处理等多个方面。以下是对这些知识点的深入解析: 1. **Sybase命令**: Sybase数据库支持SQL语言,包括数据查询、数据操纵、...
在Sybase中,不同的存储过程服务于不同的目的,例如: - **备份与恢复**:这类过程主要用于数据库的备份和恢复工作,确保数据的安全性和可用性。 - **安全性管理**:用于管理用户的登录凭证、角色分配以及权限设置...
总的来说,掌握Sybase的数据库函数和存储过程对于数据库管理员和开发人员来说至关重要,它们不仅可以简化数据处理,还可以优化查询性能,提高代码的可维护性和安全性。深入学习这两个主题,对于提升数据库管理技能...
Sybase 存储过程还可以通过游标(Cursor)处理结果集,进行循环处理或者逐行操作。同时,存储过程支持 OUT 或 INOUT 参数,允许返回值给调用者。 总的来说,Sybase 存储过程是数据库开发中的强大工具,提供了代码...