我使用oracle创建了一个表登录。首先,我在java程序中使用了字段,用户名,密码和连接数据库进行注册。我试图执行插入查询之前它运行正常,而不是我更改表登录和删除列ID。然后我再次尝试从java程序运行插入查询,但现在我收到以下错误。我没有得到改变后发生的事情。我认为变化应该反映在各处,但我仍然坚持这个例外。
java.sql.SQLSyntaxErrorException:ORA-04098:触发' SURABHI.BI_LOGIN'无效且重新验证失败
JAVA CODE:
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)
您的表似乎有一个before insert触发器并且它无效,可能是因为您删除了列ID并且它被触发器使用。
检查您的触发器并成功编译。