【发布时间】:2015-09-10 16:43:10
【问题描述】:
项目中有两个数据库连接。 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文件上进行单独的数据库连接吗?
【问题讨论】:
-
您要插入什么值?听起来该语句试图将
NULL放入Oracle 数据库中ADDSS_HST表上的ADDS_SEQ_NO列,但它是NOT NULL列。
标签: java sql-server oracle jdbc