DB2数据库移植常见问题全面解析(三)

 
   | |

导读:本文是对DB2数据库移植常见问题之数据操作方面的问题进行的解决办法和原因分析方面的介绍。

关键词:DB2 DB2数据库 数据库移植 DB2常见问题分析

正在加载数据...

数据操作

如何对应SQLServer的InsertBulk命令?

解决办法:使用 load 命令。

如何给VARGRAPHIC类型字段设置缺省值?

解决办法:将数据库建为 UTF-8 格式的数据库。

表中有 long varchar 字段,在存储过程的游标中,以 select distinct varchar(该字段)……方式选择记录,但编译通不过

解决办法:把 distinct 去掉;

原因分析:如果有 long 型字段,加 distinct 关键字就失去意义而且十分影响性能,另外该列在原来的 Oracle 应用中也只是定义为 varchar(4000),建议在 DB2 中仍设为 varchar 型,同时将该表所在表空间的 pagesize 加大,由缺省的 4k 设为 16k 或 32k。

DB2存储过程中的异常处理如何写,与Oracle中的有何区别?

解决办法:DB2 中使用以下 SQL 语句声明和处理异常:

清单7. 声明和处理异常,方法一

DECLARE HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND
BEGIN

END;

或者也可以针对某一sqlstate定义相应的错误处理句柄,示例如下:

清单8. 声明和处理异常,方法二

DECLARE condition_name CONDITION FOR SQLSTATE value;
DECLARE EXIT HANDLER FOR too_many_rows
BEGIN
...
END;

如何查询数据库中用户已定义的表?

解决办法:select * from syscat.tables;

原因分析:DB2 提供了一组视图用以用户查询数据库对象,这些视图统一存放在 SYSCAT 模式下,这些视图几乎包含了所以的数据库对象编目信息,包括表、视图、名字空间、存储过程等等。用户可以在《DB2 UDB SQL Reference Volume 1》SQL Reference 1 的 Appendix D 中找到这些视图的详细定义。

如何查询数据库中用户已定义的 sequence?

解决办法:使用 select * from syscat.sequences。

如何用SQL语句获得表空间的当前使用率?

解决办法:可以使用如下 SQL 语句查询,在用该语句获得了表空间已用页数,可用页数等信息后,即可计算出表空间当前使用率:

清单9. 获得表空间页数信息


select tablespace_name, page_size, usable_pages, used_pages, free_pages
from table( snapshot_tbs_cfg( 'sample', -1 ) ) as t
where t.tablespace_type = 0 and t.tablespace_name=

在Oracle中可以将游标结果集通过 BULK 方式存入宿主数组中,DB2中如何实现?

解决办法:DB2中不支持 BULK 方式,其替代方式是定义相应的数组,然后以循环方式每次从游标结果集中fetch一条记录到数组元素中。

DB2中如何用SQL语句取出满足条件的结果集的前N条记录?

解决办法:使用select * from where fetch first row only

Oracle中有trunacte表的功能,速度非常快,它只是把表标志设为空,并不发生删除数据的 IO 操作,DB2 中如何做类似操作?

解决办法:可以先drop表,再重建该表

原因分析:Oracle中trunacte表的速度之所以快,是因为它不记日志,只是直接把表的结构信息删除了,并不发生删除数据的 IO 操作。DB2 中 drop 表,也不会引起数据 IO 和日志记录,从而达到相同的效果。但前提是你预先有创建表的结构。否则不要随意 drop 表。

Oracle有truncate,DB2中建议使用drop,然后再create表,这样好还是alter表好?

解决办法:Oracle的truncate是直接把表的数据清空,但不记日志,所以速度很快。DB2中 drop表也避免了大量记录记入日志的问题,再重建表就达到了快速清空表的目的。但alter是用于修改表结构的,和表的数据操作没有关系。


DB2数据库移植常见问题全面解析
 DB2数据库移植常见问题全面解析(一)
 DB2数据库移植常见问题全面解析(二)
 DB2数据库移植常见问题全面解析(三)
 DB2数据库移植常见问题全面解析(四)

原文出处:http://tech.ccidnet.com/art/19213/20080630/1492051_2.html
 
来源:赛迪网    作者:Anna     
 
 
 
 
 

DB2安装与升级

 
夏洛特的可口可乐装瓶工厂是全美第二大的,他们已经将22个SAP系统迁移到DB2数据库上了,还有10个左右的Oracle数据库还在使用。

热门技术手册排行

 

在本次的技术手册中,我们为您提供了PL/SQL的基础知识以及专家指导,包括了PL/SQL中的数据类型简介、PL/SQL函数与触发器以及PL/SQL中的存储过程等,相信您无论是高手还是菜鸟都可以获得有帮助的信息。

 

本系列文章由三部分组成,为Oracle数据库管理员(DBA)面试成功的必备手册。本专题内容囊括从DBA最初的面试开始,从写“杀手简历”到求职信、到面试过程到Oracle认证再到上升到公司高层最后到你成为公司里的明星DBA。专家为你一一指点迷津,最终让你登上成功的宝座。

 

要成为一名DBA,你需要具备哪些素质?DBA的薪酬待遇如何?DBA的职业道路究竟可以走向何方?我们将在本次的技术手册中为您一一解答。

 

在本次技术手册中,我们将对SQL Server存储过程的调试进行详细的介绍,包括了基础的调试方法和在调试过程中出现的T-SQL性能问题和解决方法。

 

本技术专题主要围绕sql server设计这个话题展开,侧重介绍了sql server集簇索引的设计、如何创建sql server索引、如何优化索引、索引的能与不能、处理sql server 2000索引碎片技巧以及维护sql server索引以实现查询优化等等。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录