DB2若干问题解决记录

简介:

1. 用SQL实现交叉表格。

SQL Server里提供了Pivot关键字可以帮助实现交叉表格,但DB2里似乎没有等价的东西。实现的方法稍微复杂一点,以下是一个例子。

SELECT  location, 
MAX ( CASE   WHEN  metric = ' PH '   THEN  value  END as  PH,
MAX ( CASE   WHEN  metric = ' Hg '   THEN  value  END as   Hg ,
MAX ( CASE   WHEN  metric = ' Fe '   THEN  value  END as  Fe,
MAX ( CASE   WHEN  metric = ' Mn '   THEN  value  END as  Mn
FROM  data_view
GROUP   BY  location

 其中data_view表/视图有location、metric和value这三个字段,数据是下面这个样子:

location1    PH     1.142575278063135
location1    Hg    
0.0018310994140037379
location1    Fe    
0.2974983113601452
location1    Mn    
0.09548843270448454
location2    PH    
6.096025515217242
location2    Hg    
0.005575948698159294
location2    Fe    
0.32657056877142043
location2    Mn    
0.009418315198912612

得到的交叉表:

LOCATION   PH                           Hg                                 Fe                             Mn
location1    
1.142575278063135      0.0018310994140037379      0.2974983113601452      0.09548843270448454
location2    
6.096025515217242      0.005575948698159294      0.32657056877142043      0.009418315198912612

参考链接:

Pivot Query
另一个方法 (经实验不好用)
又一个方法 (感觉比较复杂,没试) 

2. "Error 500: DB2 SQL error: SQLCODE: -954, SQLSTATE: 57011, SQLERRMC: null"

APP Heap区不足,用"DB2 UPDATE DB CFG FOR DBNAME USING APPLHEAPSZ 1024"可以解决。注意要重启DB2以便让更改生效。

3. 恢复(Restore)数据库 

在控制中心里,选择数据库备份路径时要选到xxx.0的上一层,时间戳要与备份时一致(可通过查看备份路径里的文件夹和文件名得到,如20081007165742)。恢复数据库的命令行格式如下:

db2 restore  < dbname >  incremental from  < imagepath >  taken at  < timestamp >

4、恢复数据库时提示“SQL2570N”

例如:SQL2570N 由于操作系统不兼容或者指定的 RESTORE 命令不正确,所以在目标操作系统 "NT-32" 上从源操作系统 "AIX-32" 上创建的备份进行复原的尝试失败。原因码:"1"。

按照错误码(1)对应的用户响应,应该使用db2move实用程序:“要使用这个特定的备份映像,应在与创建该备份 时所在的操作系统“复原兼容”的系统上进行复原 。要将数据库从一种操作系统类型移至另一操作系 统类型,请使用 db2move 实用程序。要了解有关相互“复原兼容”的平台以 及 db2move 实用程序的详细信息,请使用诸如“跨平 台备份和复原”或“使用不同操作系统”之类的短 语来在 DB2 信息中心( http://publib.boulder.ibm.com/infocenter/db2luw/v9)中执行搜索”

本文转自博客园八进制的博客,原文链接:DB2若干问题解决记录,如需转载请自行联系原博主。

相关文章
|
2月前
|
Oracle 关系型数据库
Oracle查询优化-删除名称重复的记录
【2月更文挑战第2天】【2月更文挑战第4篇】方法很多,列举我用过的两种,比较容易理解的。
29 3
|
关系型数据库 MySQL 测试技术
软件测试mysql面试题:mysql、表“test”,两个字段 id 和 uid。查看数据表结构、插入一条记录、删除一条记录。
软件测试mysql面试题:mysql、表“test”,两个字段 id 和 uid。查看数据表结构、插入一条记录、删除一条记录。
113 0
|
关系型数据库 MySQL
MySQL防止重复插入相同记录 insert if not exists
MySQL防止重复插入相同记录 insert if not exists
1340 0
|
SQL
SQL更新id段之间的字段
SQL写得少, 写一次记一次。:)
1093 0
|
SQL 数据库
简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录
原文:简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录        在很多的时候,我们会在数据库的表中设置一个字段:ID,这个ID是一个IDENTITY,也就是说这是一个自增ID。
1711 0
Oracle11g select查询时候输出未选定行
解决方法是: 查询的表名是否是大写的; 是否没有提交执行结果:可以commit一下;
1454 0