zoukankan      html  css  js  c++  java
  • DB2若干问题解决记录

    1. 用SQL实现交叉表格。

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

    SELECT location, 
    MAX(CASE WHEN metric='PH' THEN value ENDas PH,
    MAX(CASE WHEN metric='Hg' THEN value ENDas Hg,
    MAX(CASE WHEN metric='Fe' THEN value ENDas Fe,
    MAX(CASE WHEN metric='Mn' THEN value ENDas 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)中执行搜索”

    如果觉得本文内容有帮助:试试我开发的Android应用 应用计时折扣君推荐+1(需登录)

  • 相关阅读:
    解决bash: less: command not found
    IDEA-相关插件使用
    如何理解多租户架构?
    mybatis自动生成model、dao及对应的mapper.xml文件
    IDEA设置提示生成序列化ID
    [DUBBO] qos-server can not bind localhost:22222错误解决
    @NotNull,@NotEmpty,@NotBlank区别
    (三)IDEA使用,功能面板
    PHP实现自己活了多少岁
    使用PHP函数输出前一天的时间和后一天的时间
  • 原文地址:https://www.cnblogs.com/bjzhanghao/p/1271120.html
Copyright © 2011-2022 走看看