![](/img/trans.png)
[英]com.microsoft.sqlserver.jdbc.SQLServerexception:incorrect syntax near'='
[英]com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '|'
项目中有两个数据库连接。 1. oracle 数据库 2. mssql 数据库
数据库连接正常。 问题是当数据在一个数据库[oracle] 中传输/插入时显示错误,同时数据成功插入另一个数据库[mssql]。插入查询很好,但还有另一个查询生成序列号。 有问题。
这是属于oracle数据库的查询
return jdbcTemplate.queryForObject("SELECT 'AK'||LPAD(adds_seq.NEXTVAL,13, '0') adds_seq_no FROM sys.dual ",String.class);
错误是:
SELECT 'AK'||LPAD(adds_seq.NEXTVAL,13, '0') adds_seq_no FROM sys.dual ",String.class ]; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '|'.
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:98)
当没有 mssql 连接时,它运行良好。
下面的查询是针对 oracle 数据库的。 当我尝试像这样更改代码时:
String sql = " SELECT 'AK'||LPAD(adds_seq.NEXTVAL,13, '0') adds_seq_no FROM sys.dual";
String adSeqNum = null;
try {
adSeqNum = jdbcTemplate.queryForObject(sql, String.class);
} catch (Exception e) {
e.printStackTrace();
}
return addSeqNum;
那么错误是
org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL []; ORA-01400: cannot insert NULL into ("ADDSS_HST"."ADDS_SEQ_NO")
1.你能指导我如何解决这个问题吗?
2.你能举例说明如何在一个java文件上做单独的数据库连接吗?
发生"Incorrect syntax near '|'"
是因为您将 Oracle 语句"SELECT 'AK'||LPAD(adds_seq.NEXTVAL,13, '0') adds_seq_no FROM sys.dual "
发送到 MSSQL 服务器连接。
第二个错误, cannot insert null into "ADDSS_HST"."ADDS_SEQ_NO"
我怀疑是因为在发布从序列中选择的 sql 之前,您将记录插入到 ADDSS_HST 表中。 这样对吗? 如果是这样,我建议您将生成 add_seq_no 的代码放入如下所示的触发器中(根据需要调整名称):
CREATE OR REPLACE TRIGGER "APPLICATION_BI_TRG"
BEFORE INSERT ON APPLICATION
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
if :new.application_id is null then
// if no value was given in insert statement for column application_id
SELECT APP_WEB_ID_SEQ.NEXTVAL INTO :NEW.application_id FROM dual;
// select a value from sequence into :NEW.application_id
end if;
END;
/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.