簡體   English   中英

dBeaver(CE):發生SQL錯誤42704的DB2 LUW連接。表模式無法打開,但能夠編寫SQL查詢

[英]dBeaver (CE): DB2 LUW Connection with SQL ERROR 42704. Table Schema won't open but able to write SQL queries

大約一年半之后,我終於可以通過dBeaver連接到我們擁有的DB​​2數據庫。 作為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM