我在 docker 中运行 db2 数据库。 我创建了一个“测试”数据库。 当尝试通过添加 db2jcc4 jar 文件通过流动配置连接到该数据库时。 我收到这个错误 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
大约一年半之后,我终于可以通过dBeaver连接到我们拥有的DB2数据库。 作为LUW,连接成功(我们的db2是z / os)。 安装IBM Data Studio之后,我能够获得所需的驱动程序。
连接后,我进入模式,转到表,然后单击它,出现以下错误。
SQL Error [42704]: SYSCAT.SCHEMATA IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.69.56
SYSCAT.SCHEMATA IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.69.56
THE DESCRIBE STATEMENT DOES NOT SPECIFY A PREPARED STATEMENT. SQLCODE=-516, SQLSTATE=26501, DRIVER=3.69.56
THE CURSOR SQL_CURLH200C1 IS NOT IN A PREPARED STATE. SQLCODE=-514, SQLSTATE=26501, DRIVER=3.69.56
SQL Error [42704]: SYSCAT.SCHEMATA IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.69.56
但是,如果忽略该错误并转到New SQL查询并编写一个简单的
Select * from schema.table
它工作正常,并得到我想要的结果。
考虑到我花到这里的时间,这已经足够了,但是要作为我部门的解决方案部署,我需要能够查看表列表(模式)。
任何帮助都是极好的。
EDIT1:这里的问题是,没有名称为SYSCAT的SCHEMA,也没有名为SCHEMATA的表。
z / OS Db2目录的名称与分布式(Linux Unix Windows,也称为LUW)的Db2所使用的名称不同。 这是您可以查看的Db2 z / OS上的对象列表 。
似乎您正在使用dBeaver在UI中导航Db2 for z / OS上的对象。 您将需要确保您具有用于z / OS Db2的db2 jcc驱动程序。 看起来您可能正在使用LUW中的一个,因为SYSCAT.SCHEMATA是LUW对象,而不是z / OS对象。
您的其他查询有效,因为您要指定一个已知的表名。 其他查询应该没问题。 问题是dbeaver中的接口正在查找LUW的Db2系统对象,而不是z / OS。 这将继续进行,直到您能够解决驱动程序问题为止。
IBM数据服务器驱动程序还需要服务器端设置。 请查看此信息https://www.ibm.com/support/knowledgecenter/SSEPEK_12.0.0/java/src/tpc/imjcc_jccenablespsandtables.html
在DBeaver中,创建连接时,在连接到DB2 for z / OS时,在Db2下拉菜单下选择“ DB2 z / OS驱动程序”选项。
BTW DBeaver可以与Data Studio进行外壳共享,因此(如果需要)您可以一次安装使用这两种产品。 不能保证他们在所有情况下都能愉快地共享,但是看起来效果不错。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.