Sybase(sqlanywhere)比较应用版本大小数据库存储过程

本文主要讨论在Sybase SQL Anywhere中遇到的一个问题,即存储过程在控制台执行正常,但通过jdbc调用时返回结果错误。原因是临时表在on commit时被清除,导致数据丢失。解决方法是在Java代码中设置合适的事务管理,防止过早的commit操作。这个解决方案可供遇到相同问题的开发者参考。
摘要由CSDN通过智能技术生成



前置条件:版本以"."进行分割。


ALTER PROCEDURE "SMM"."sp_justsy_zh_compare_app_version"(   
    IN  p_original      VARCHAR(50)   
   ,IN  p_compare       VARCHAR(50)  
 )  
--result( response xml ) 
RESULT( r_respone INTEGER) 
    -- 比较应用版本、  
    -- p_original > p_compare return -1  
    -- p_original = p_compare return 0  
    -- p_original > p_compare return 1  
BEGIN  
    DECLARE lv_comp         INTEGER;  
    DECLARE lv_ori_index    INTEGER;  
    DECLARE lv_com_index    INTEGER;  
    DECLARE lv_sort_key     INTEGER;  
    DECLARE lv_equal_count  INTEGER; -- 版本是否相同计数


    DECLARE lv_ori_value    INTEGER;
    DECLARE lv_com_value    INTEGER;
  
    DECLARE LOCAL TEMPORARY TABLE SplitTable ( SortKey INTEGER DEFAULT AUTOINCREMENT, OriVal VARCHAR(20), ComVal VARCHAR(20), PRIMARY KEY(SortKey)) ON COMMIT DELETE ROWS ;  
    --------  Init Value-------  
    SET
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值