gpt4 book ai didi

java - 执行dao时出错

转载 作者:行者123 更新时间:2023-12-01 16:07:14 27 4
gpt4 key购买 nike

你好 friend ,我正在运行下面给出的代码,其中包含 setLogTimeEntery 函数,当执行此函数时,我得到

“错误:java.sql.SQLException:ORA-00917:缺少逗号”

错误,我的数据库是 oracle,请任何人告诉我问题是什么。

public int setLogTimeEntery(Connection con, LogTimeBean ltb) {

int ans = 0;

try{
psmt=con.prepareStatement("Insert into TR_LogTime values((Select count(*) from Tr_LogTime) + 1 ,(select sysdate from dual) , Prj_Id=?,Area_Id=?,Actvity_Id=?,ID_No=?,Work_Date=(select to_date(?,'dd/mm/yyyy')from dual) ,Work_Hours=?,Division=?,Description=?,Remarks=?,Work_Week=?)");
psmt.clearParameters();
psmt.setString(1,ltb.getLt_Prj_Id());
psmt.setInt(2,ltb.getLt_Area_Id());
psmt.setInt(3,ltb.getLt_Actvity_Id());
psmt.setInt(4, ltb.getLt_ID_No());
psmt.setString(5, ltb.getLt_Work_Date());
psmt.setFloat(6,ltb.getLt_Work_Hours());
psmt.setInt(7,ltb.getLt_Division());
psmt.setString(8, ltb.getLt_Description());
psmt.setString(9, ltb.getLt_Remarks());
psmt.setInt(10, ltb.getLt_Work_Week());
ans=psmt.executeUpdate();
psmt.close();
}catch(Exception e){
System.err.println("Error : "+e);
}
return ans;
}

最佳答案

我认为您的 Oracle SQL 语句(如准备好的语句中所定义)无效。使用 insert into [table]values(...) 语法时,不要使用 column=value 表达式。

如果您以正确的顺序指定所有列值,请使用:

psmt=con.prepareStatement("Insert into TR_LogTime values((Select count(*) from Tr_LogTime) + 1 ,(select sysdate from dual), ?, ?, ?, ?,(select to_date(?,'dd/mm/yyyy')from dual) ,?,?,?,?,?)");

否则,如果您仅指定列的子集,请使用

的语法
insert into TR_LogTime (col1, col2, col3, ...) values (?, ?, ?, ...)

(我没有在示例中指定确切的列名称,因为我不知道所有列名称)

More on this syntax .

关于java - 执行dao时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2368963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com