2016-12-17 30 views
-3

我做了一個表登錄使用oracle。首先,我在java程序中使用了字段,用戶名,密碼和連接數據庫來註冊。我試圖執行插入查詢之前,它運行正常比我更改表登錄和刪除列ID。然後再次嘗試從java程序運行插入查詢,但現在我得到了以下錯誤。我沒有得到改變後發生的事情。我認爲改變應該反映到處,但我堅持這個例外。SQLSyntaxErrorException

java.sql.SQLSyntaxErrorException:ORA-04098:觸發器 'SURABHI.BI_LOGIN' 是無效的,失敗再驗證

Java代碼:

public void insertLogin(String user,String pass) { 

    String query = "insert into Login(username,password)" + " values(?,?)"; 
    try { 
     ps = con.prepareStatement(query); 
     ps.setString(1, user); 
     ps.setString(2, pass); 
     ps.execute(); 
     System.out.println("inserted"); 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

您應該附加表格架構和觸發器正文。 –

回答

2

看來你的表有一個插入觸發器之前,它是無效的,可能是因爲你刪除了列ID,它被觸發器使用。

檢查你的觸發器併成功編譯它。

+0

觸發「BI_LOGIN」 上「登錄」 插入每個行之前開始 如果 :NEW「ID」爲空,然後 選擇「LOGIN_SEQ」 .nextval成:NEW「ID」從雙; end if; 結束; –

+0

現在我該怎麼辦? –

+0

完成。我刪除了觸發器。現在代碼執行正確。感謝提示,我沒有從異常中獲得。 –

相關問題