向数据库中插入数据报错误

2025-04-08 10:34:21
推荐回答(4个)
回答1:

seq_sms.nextVal是oracle中的序列对象取下一个序列号,sysdate是代表当前日期
生成的sql语法有问题,我想知道你把参数替换后的最终sql是什么样

在数据库中直接执行此句 select seq_sms.nextVal from dual
如果不能查出结果则你的 seq_sms 序列没有,看是否写错或没有创建

你在数据库中运行下面的语法
创建 序列对象
create sequence seq_sms
minvalue 1 //最小值
maxvalue 999999999999999999999999999 //最大值
start with 1 //初始值
increment by 1 //自增值
nocache; // 不缓存

回答2:

insert into SMS (SMS_NUM, SMS_WRITE_DATE, SMS_TITLE, SMS_CON, SMS_SENDER, SMS_SENDE_TEL, SMS_WRITER) values (seq_sms.nextVal, sysdate, ?, ?, ?, ?, ?)

Parameters: [asdajkshdjjkk, asdsdsdsaasdas, 세외수입정보화사업단, 02-2222-2222, 정명춘]

Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String]

错误提示:
javax.servlet.ServletException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in wnis/sms/dao/sqlmap/Sms.xml.
--- The error occurred while applying a parameter map.
--- Check the addSms-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLException: ORA-02289: ?????

因为你的数据库中相对应的表中没有自动增长列。
去看看你的数据库就知道了。

回答3:

(seq_sms.nextVal, sysdate, ?, ?, ?, ?, ?)
这几个问号是啥?变量?字符串?
字符串的话,要加''

回答4:

啥啊?看不懂