[英]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.