2009-10-19 169 views
8

我遇到了DB2的問題。我剛剛將db2安裝爲db2admin和密碼。當我嘗試連接到數據庫時,它已成功完成,並且在運行任何簡單的選擇查詢時,它會給我出現以下錯誤: -java的db2連接問題

DB2 SQL錯誤:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = DB2ADMIN.LOGIN,DRIVER = 3.57.82

我有一個名爲onp的數據庫和一個名爲'login'的表,其中有一個名爲'login'的表有兩個字段username和password。

查詢我從登錄運行

  1. 選擇*;讓我錯誤

DB2 SQL錯誤:SQLCODE = -204,SQLSTATE = 42704,則sqlerrmc = DB2ADMIN.LOGIN,DRIVER = 3.57.82

  • 選擇從系統* 。登錄;給我的錯誤: - (//系統是架構名稱)
  • DB2 SQL錯誤:SQLCODE = -551,SQLSTATE = 42501,則sq​​lerrmc = DB2ADMIN;選擇; SYSTEM.LOGIN,DRIVER = 3.57.82

    我已經嘗試了網絡上的所有資源,並完全耗盡。請幫我

    回答

    9

    我不知道了很多關於DB2,但查找錯誤代碼......

    第一個錯誤是因爲你沒有指定模式,所以它無法找到登錄表。

    SQLCODE -204 Object not defined to DB2

    DB2顯然要求您指定模式名稱,或者它在與您的登錄用戶具有相同名稱的架構中查找。

    您必須使用SET SCHEMA或完全限定表名稱。

    第二個錯誤是因爲您沒有權限來執行選擇:

    SQLCODE -551, Error: DOES NOT HAVE THE PRIVILEGE TO PERFORM OPERATION ON OBJECT

    我不知道爲什麼DB2ADMIN用戶將無法從該表中選擇...

    資源:
    List of DB2 SQLCODEs

    +0

    感謝我得到它在你的幫助解決。 – RishiPatel 2009-11-01 06:34:22

    +0

    -204也會指出完全限定的表名中的指定模式不正確或不存在。 – ammianus 2013-01-02 21:24:08

    +0

    如果你有一個命令行,下面的代碼有助於'db2? SQLnnnn',其中nnnn是4位數字的sql代碼(如果需要,在左邊延伸0)。這將打印錯誤的解釋。 – Ingo 2013-07-16 13:48:29

    1

    您也可以解決問題爲:

    剛爲連接到DB2的用戶授予適當的權限。

    4

    SQL代碼551發生是因爲連接用戶沒有執行操作的權限。

    轉到控制中心 - 進入用戶組和對象,並選擇DB2ADMIN(假設該用戶是一個用於連接到DB2)

    enter image description here

    檢查所有的複選框爲以下

    enter image description here

    格蘭特架構訪問用戶 enter image description here

    授權表訪問用戶 enter image description here

    1

    我有同樣的問題,我解決它在我的實體添加架構:

    @Entity 
    @Table(name="MyTable", schema="MySchemaName") 
    public class MyClass implements Serializable { 
    ... 
    }