大约一年半之后,我终于能够通过dBeaver连接到我们拥有的dBeaver数据库。连接是成功的LUW (我们的db2是z/os)。在安装之后,我能够获得所需的驱动程序。
一旦我连接起来,我就按下模式,进入表,然后单击该表,就会得到以下错误。
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查询并编写一个简单的
Select * from schema.table
效果很好,得到了我想要的结果。
考虑到我花在这里的时间,这是足够的,但部署作为解决方案在我的部门,我需要能够查看一个表列表(模式)。
任何帮助都会很棒。
EDIT1:这里的问题是,没有名为SYSCAT的模式,也没有名为SCHEMATA的表。
发布于 2018-10-12 16:47:40
z/OS Db2目录的名称与分布式Db2上使用的名称不同(LinuxUnixWindows又名LUW)。这里有一个Db2 z/OS上的对象列表,您可以查看它。
看起来,您正在使用dBeaver在UI ( Db2 for z/OS上的对象)中导航。您需要确保您有一个Db2 jcc驱动程序,即z/OS db2。看起来您可能正在使用LUW中的一个,因为SYSCAT.SCHEMATA是LUW对象,而不是z/OS对象。
您的其他查询之所以有效,是因为您指定了一个已知的表名。其他查询应该是可以的。问题是,dbeaver中的接口正在查看LUW的Db2系统对象,而不是z/OS。这将继续下去,直到您能够解决驱动程序问题。
发布于 2018-10-12 20:28:44
驱动程序还需要服务器侧设置。请参阅此信息jccenablespsandtables.html
发布于 2018-10-12 18:17:59
在DBeaver中,当您创建连接时,在连接到Db2 for z/OS时,选择DB2下拉下的"DB2 z/OS驱动程序“选项
顺便说一下,DBeaver可以与Data共享shell,因此您可以(如果愿意)在一次安装中使用这两种产品。不能保证他们在所有情况下都能愉快地分享,但它似乎运作得相当好。
https://stackoverflow.com/questions/52782663
复制相似问题