SYBASE数据库迁移到AS400db2的FAQ.docx

SYBASE数据库迁移到AS400db2的FAQ.docx

ID:51694727

大小:48.02 KB

页数:19页

时间:2020-03-15

SYBASE数据库迁移到AS400db2的FAQ.docx_第1页
SYBASE数据库迁移到AS400db2的FAQ.docx_第2页
SYBASE数据库迁移到AS400db2的FAQ.docx_第3页
SYBASE数据库迁移到AS400db2的FAQ.docx_第4页
SYBASE数据库迁移到AS400db2的FAQ.docx_第5页
资源描述:

《SYBASE数据库迁移到AS400db2的FAQ.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SYBASE数据库迁移到AS400db2的FAQ1.Sybase数据类型和db2有那些不同?答:Datetime对应timestampTinyint,smallint对应smallintMoney类型对应numeric(19,4)2.db2数据库是否支持自增加列设置?答:支持,例如:SYSIDBIGINTGENERATEDALWAYSASIDENTITY将原来sysid的numerical(18,0)改为BIGINT类型3.Db2是否有convert()函数,sybase下这样语句如何转换?答:convert(datetime,conver

2、t(char(8),dateadd(day,-1,getdate()),112))db2下没有convert()函数,关于转换可以使用如下函数char(),timestamp(),date(),time()…另外可以使用系统内部的系统变量currenttimestamp,currentdate,currenttime代表系统当前日期时间如上语句可以这样转换timestamp(currentdate–1days,time(’00.00.00’))4.Sybase的isnull(@vc_pici_id,’0’)如何转换?答:DB2下使用valu

3、e(vc_pici_id,’0’)或者coalesce(vc_pici_id,’0’)5.Db2下如何调用存储过程和调用代返回值得存储过程?答:(1)无返回参数调用CALLproc1(v_empno,v_salary)(2)有返回参数调用declareret_varintegerdefault0;CALLproc1(var1,var2);GetDiagnosticsret_var=RETURN_STATUS;---------declareerr_codeintegerdefault0;callproc1(var1,err_code);IF

4、ERR_CODE=1THENXXXX;ENDIF;6.Sybase下游标控制是非常方便的,使用sqlcode,sqlstate来控制,不知道db2下游标是如何控制的?答:DB2下游标控制不是非常的轻松和方便的,同样也可以使用sqlcode,sqlstate,或者用户自己控制,DB2下SQLCODE,SQLSTATE不能直接使用,必须声明后使用,(也就是说将系统的SQLCODE,SQLSTATE本地实例化一分拷贝)。一般采用用户定义游标开关和sqlcode返回信息一起共同控制的方法.举例1:(这里说明一个问题,游标开关是和SQLCODE捆绑的

5、。‘02000’就是SQLCODE号)//-------标准使用游标的例子标准WHILEDO控制游标//-------CREATEPROCEDURECREDITP(INi_perincDECIMAL(3,2),INOUTo_numrecDECIMAL(5,0))LANGUAGESQLBEGIN--这里是用户管理事务DECLAREproc_cusnbrCHAR(5);DECLAREproc_cuscrdDECIMAL(11,2);DECLAREnumrecDECIMAL(5,0);DECLAREat_endINTDEFAULT0;--开关定义

6、DECLAREnot_foundCONDITIONFOR'02000';--没有数据,游标结尾定义DECLAREc1CURSORFORSELECTcusnbr,cuscrdFROMordapplib.customer;DECLARECONTINUEHANDLERFORnot_foundSETat_end=1;--定义CONTINUE条件DECLAREEXITHANDLERFORSQLEXCEPTIONROLLBACK;--sqlcode非'01''00''02'则退出并回滚事务SETnumrec=0;OPENc1;FETCHc1INTOpr

7、oc_cusnbr,proc_cuscrd;WHILEat_end=0DOSETproc_cuscrd=proc_cuscrd+(proc_cuscrd*i_perinc);SETnumrec=numrec+1;FETCHc1INTOproc_cusnbr,proc_cuscrd;ENDWHILE;SETo_numrec=numrec;CLOSEc1;COMMIT;--提交事务END举例2:--声明游标C1DECLAREc1CURSORFORSELECTcusnbr,cuscrdFROMordapplib.customer;OPENc1;-

8、-打开游标FETCHc1INTOproc_cusnbr,proc_cuscrd;--从游标获取数据IFSQLSTATE='02000'THEN--判断游标是否有数据(无)CALL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。