代码之家  ›  专栏  ›  技术社区  ›  spinjector

在数据库迁移到新的DB2/400服务器之后,表和列标签将不再可访问。要启用哪些服务器设置….?

  •  0
  • spinjector  · 技术社区  · 6 年前

    我们有一个第三方DB2/400应用程序,它是我们业务的核心。它最近从POWER7上带有AS400/iV6R1的私有服务器迁移到POWER9上带有AS400/iV7R3的托管云服务。

    自迁移以来,SQL客户机在任何类型的数据库资源管理器中浏览表时都看不到表文本或列文本。在大多数情况下,当浏览资源管理器中的表或列时,文本应该显示在“备注”或“描述”下,但它不再显示。

    即使是IBMDataStudio也不会在列中显示数据,但它确实提供了隐藏在底层且不方便访问的信息。

    在向SQL客户机提供此元数据时涉及到什么DB2服务器设置….?我搜索过IBM的网站,但答案层出不穷。

    在与我们的主机提供商讨论这个问题之前,我想先了解一下这些信息。他们提供的ODBC/JDBC连接“大部分不受支持”,但我希望他们能考虑帮助我们解决这个问题,如果我能尽可能详细地描述服务器设置。

    要清楚,我要查找的是DDL语句中的标签,例如:

    LABEL ON TABLE  "SCHEMA1"."TABLE1"           IS 'Some Table Description';
    LABEL ON COLUMN "SCHEMA1"."TABLE1"."COLUMN1" IS 'Some Column Desc';
    

    客户端可能无法访问标签,但以下SQL查询可以这样做:

    SELECT  TABLE_SCHEMA, TABLE_NAME, TABLE_TEXT
    FROM    QSYS2.SYSTABLES
    WHERE   TABLE_SCHEMA = 'SCHEMA1'
    AND     TABLE_NAME   = 'TABLE1'  
    
    SELECT  TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_TEXT
    FROM    QSYS2.SYSCOLUMNS
    WHERE   TABLE_SCHEMA = 'SCHEMA1'
    AND     TABLE_NAME   = 'TABLE1'  
    

    我已经尝试过下面列出的客户机和驱动程序,它们都不能访问表或列的标签。我在StackOverflow和其他地方读了很多文章,尝试了很多客户机和驱动程序的设置调整,但是没有任何效果。显然,这是新服务器上的一个问题。

    客户:

    • dbeaver 5.2.5(我的首选客户)(非常)
    • 松鼠SQL 3.8.1
    • SQL工作台124
    • IBM数据工作室4.1.3

    司机:

    • JTopen 6.6(JTopen 6.6)
    • jtopen 7.6(最近下载了IBM Data Studio)
    • JTPEN 9.5
    3 回复  |  直到 6 年前
        1
  •  1
  •   Dam    6 年前

    使用squirrelSQL 3.9和jtopen,必须在驱动程序属性中选择两个选项:

    remarks = true
    extended metadata = true
    

    在新的会话配置中,检查SQL/显示元数据,然后voil_: Squirrel with metadata in column names

    使用V7R1进行检查,使用DDS注释或SQL标签

        2
  •  1
  •   spinjector    6 年前

    我在IBM论坛上发布了这个问题,并收到了我需要的答案:

    table and column labels are no longer accessible to JDBC clients

    解决方案是按如下方式设置JDBC驱动程序属性:

    metadata source = 0
    

    随着这一变化,其他属性似乎对我的情况来说是不必要的。在设置 metadata source 属性,我对其他两个进行了测试更改,但没有看到任何明显的区别:

    remarks = true
    extended metadata = true
    
        3
  •  0
  •   Charles    6 年前

    ODBC/JDBC使用另一组目录…位于 SYSIBM 模式…

    sysibm.sqltables表
    sysibm.sqlcolumns(系统IBM.sqlcolumns)

    发射型计算机断层扫描仪。。。

    ODBC and JDBC Catalog views