最近我們升級了我們的一個應用程序,並且作爲升級的一部分,數據庫也從SQL Server 2005升級到了2008年。我們使用WMB 7.0來處理用於應用程序的傳入消息。無法將時間戳值從WebSphere Message Broker寫入SQL Server 2012數據庫
代理在收到消息後,會使用消息流中由CURRENT_TIMESTAMP
方法返回的值更新db中的列(datetime
)。
UPDATE Database.DATABASENAME
SET MODIFIEDDATE = CURRENT_TIMESTAMP
這是工作的罰款,直到我們使用SQL Server 2005,但SQL Server 2012中,我們得到這個錯誤在經紀人日誌:
[IBM] [ODBC SQL Server驅動程序] [SQL服務器]從角色轉換日期和/或時間時轉換失敗。
在odbc.ini
文件中我們使用此配置:
Driver=/opt/mqsi/ODBC/V6.0/lib/UKmsss24.so
Description=DataDirect 6.0 SQL Server Wire Protocol
Address= ADDRESSOFDB
Database= DATABASENAEM
AnsiNPW=Yes
QEWSD=40117
QuotedId=No
ReportDateTimeType=0
我也試圖寫入數據庫之前投時間戳:
DECLARE timestampChar CHARACTER;
SET timestampChar = CAST (CURRENT_TIMESTAMP AS CHARACTER FORMAT 'yyyy-MM-dd HH:mm:ss.SSS');
UPDATE Database.DATABASENAME
SET MODIFIEDDATE = CAST(timestampChar AS TIMESTAMP FORMAT 'yyyy-MM-dd HH:mm:ss.SSS')
我也試過中繼:
PASSTHRU ('UPDATE Database.TRANSACTIONINSTALLMENT AS TI
SET UUID =?,
MODIFIEDDATE =?,
WHERE TI.TRANSACTIONID =? AND
TI.INVOLVEMENTNUMBER =? AND
TI.INSTALLMENTNUMBER =?',
techaccount.UUId,
currentTimestampChar,
cTransactionId,
techaccount.Reinsurer_Involvement_Number,
techaccount.Reinsurer_Involvement_Number,
techaccount.TechAccountAmtItem.InstalmentNbr);
但是t他也導致同樣的錯誤。請幫助任何人。
謝謝回答,但我能夠連接,並從WMBv7一個SQL Server 2012的DB寫入。 – HyperioN