将数据库迁移到新的 DB2/400 服务器后,table 和列标签将无法再访问。启用什么服务器设置..?
After database migration to new DB2/400 server, the table and column labels are no longer accessible. What server settings to enable..?
我们有一个第 3 方 DB2/400 应用程序,它是我们业务的核心。它最近从我们在 Power7 上使用 AS400/i v6r1 的私有服务器迁移到在 Power9 上使用 AS400/i v7r3 的托管云服务。
自迁移以来,SQL 客户在他们拥有的任何类型的数据库浏览器中浏览表时都看不到 TABLE_TEXT 或 COLUMN_TEXT。在大多数情况下,当在资源管理器中浏览表或列时,文本应该显示在 "Remarks" 或 "Description" 下,但现在不会了。
即使是 IBM Data Studio 也不会在列中显示数据,但它确实提供了隐藏得很深且不方便访问的信息。
向 SQL 客户端提供此元数据涉及哪些 DB2 服务器设置..??我搜索了 IBM 网站,但答案堆积如山。
在与我们的托管服务提供商讨论该问题之前,我想 fore-armed 了解这些信息。他们提供 ODBC/JDBC 连接 "mostly unsupported",但如果我能尽可能详细地描述服务器设置,我希望他们会考虑帮助我们解决这个问题。
明确地说,我要查找的是 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'
我已经尝试了下面列出的客户端和驱动程序,其中 none 可以访问表或列的标签。我在 Whosebug 和其他地方阅读了很多帖子,并尝试对客户端和驱动程序中的设置进行多次调整,但没有任何效果。很明显这是新服务器上的问题。
客户:
- DBeaver 5.2.5(我的首选客户端)(非常)
- 松鼠SQL3.8.1
- SQL Workbench 124
- IBM 数据工作室 4.1.3
司机:
- JTOpen 6.6
- JTOpen 7.6(最近下载了 IBM Data Studio)
- JTOpen 9.5
ODBC/JDBC 使用一组不同的目录...位于 SYSIBM
架构中...
sysibm.sqltables
sysibm.sqlcolumns
等...
使用 SquirrelSQL 3.9 和 JtOpen,您必须 select 驱动程序属性中的两个选项:
remarks = true
extended metadata = true
在新会话配置中,检查 SQL / 显示元数据,瞧:
使用 V7R1 检查,使用 DDS 注释或 SQL 标签
我在 IBM 论坛上发布了这个问题,并收到了我需要的答案:
table and column labels are no longer accessible to JDBC clients
解决方法是JDBC驱动属性设置如下:
metadata source = 0
进行此更改后,其他属性似乎对我的情况来说不是必需的。在设置了metadata source
属性之后,我对其他两个进行了测试更改,但我没有看到任何明显的区别:
remarks = true
extended metadata = true
我们有一个第 3 方 DB2/400 应用程序,它是我们业务的核心。它最近从我们在 Power7 上使用 AS400/i v6r1 的私有服务器迁移到在 Power9 上使用 AS400/i v7r3 的托管云服务。
自迁移以来,SQL 客户在他们拥有的任何类型的数据库浏览器中浏览表时都看不到 TABLE_TEXT 或 COLUMN_TEXT。在大多数情况下,当在资源管理器中浏览表或列时,文本应该显示在 "Remarks" 或 "Description" 下,但现在不会了。
即使是 IBM Data Studio 也不会在列中显示数据,但它确实提供了隐藏得很深且不方便访问的信息。
向 SQL 客户端提供此元数据涉及哪些 DB2 服务器设置..??我搜索了 IBM 网站,但答案堆积如山。
在与我们的托管服务提供商讨论该问题之前,我想 fore-armed 了解这些信息。他们提供 ODBC/JDBC 连接 "mostly unsupported",但如果我能尽可能详细地描述服务器设置,我希望他们会考虑帮助我们解决这个问题。
明确地说,我要查找的是 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'
我已经尝试了下面列出的客户端和驱动程序,其中 none 可以访问表或列的标签。我在 Whosebug 和其他地方阅读了很多帖子,并尝试对客户端和驱动程序中的设置进行多次调整,但没有任何效果。很明显这是新服务器上的问题。
客户:
- DBeaver 5.2.5(我的首选客户端)(非常)
- 松鼠SQL3.8.1
- SQL Workbench 124
- IBM 数据工作室 4.1.3
司机:
- JTOpen 6.6
- JTOpen 7.6(最近下载了 IBM Data Studio)
- JTOpen 9.5
ODBC/JDBC 使用一组不同的目录...位于 SYSIBM
架构中...
sysibm.sqltables
sysibm.sqlcolumns
等...
使用 SquirrelSQL 3.9 和 JtOpen,您必须 select 驱动程序属性中的两个选项:
remarks = true
extended metadata = true
在新会话配置中,检查 SQL / 显示元数据,瞧:
使用 V7R1 检查,使用 DDS 注释或 SQL 标签
我在 IBM 论坛上发布了这个问题,并收到了我需要的答案:
table and column labels are no longer accessible to JDBC clients
解决方法是JDBC驱动属性设置如下:
metadata source = 0
进行此更改后,其他属性似乎对我的情况来说不是必需的。在设置了metadata source
属性之后,我对其他两个进行了测试更改,但我没有看到任何明显的区别:
remarks = true
extended metadata = true