首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mirth通道中的数据库错误

Mirth通道中的数据库错误
EN

Stack Overflow用户
提问于 2015-08-10 16:45:43
回答 3查看 2K关注 0票数 0

我想使用Mirth连接到一个数据库,然后将一条记录写入该数据库中的一个表。

该记录包含字段"file_name",该文件名包含Date值,因此新文件的名称如下:

代码语言:javascript
复制
temp_2015-08-10 

这是我传递给Mirth Destination SQL字段的内容:

代码语言:javascript
复制
INSERT INTO statutory_reports (str_est_id, str_type, str_create_date, str_created, str_record_status, str_file_path, str_file_name, str_created_by) VALUES (2, 'temp', CURDATE(), NOW(),'approved', 'C:/application/reports/temp reports/gumcad/', 'temp'+ ${date.get('yyyy-M-d hh:MM:ss')}, 'SHEP');       

问题是我得到一个错误:

代码语言:javascript
复制
Database Writer error
ERROR MESSAGE: Failed to write to database
com.mirth.connect.connectors.jdbc.DatabaseDispatcherException: Failed to write to database
    at com.mirth.connect.connectors.jdbc.DatabaseDispatcherQuery.send(DatabaseDispatcherQuery.java:143)
    at com.mirth.connect.connectors.jdbc.DatabaseDispatcher.send(DatabaseDispatcher.java:103)
    at com.mirth.connect.donkey.server.channel.DestinationConnector.handleSend(DestinationConnector.java:738)
    at com.mirth.connect.donkey.server.channel.DestinationConnector.process(DestinationConnector.java:436)
    at com.mirth.connect.donkey.server.channel.DestinationChain.call(DestinationChain.java:155)
    at com.mirth.connect.donkey.server.channel.Channel.process(Channel.java:1656)
    at com.mirth.connect.donkey.server.channel.Channel.dispatchRawMessage(Channel.java:1155)
    at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchRawMessage(SourceConnector.java:191)
    at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchRawMessage(SourceConnector.java:169)
    at com.mirth.connect.connectors.jdbc.DatabaseReceiver.processRecord(DatabaseReceiver.java:200)
    at com.mirth.connect.connectors.jdbc.DatabaseReceiver.processResultSet(DatabaseReceiver.java:160)
    at com.mirth.connect.connectors.jdbc.DatabaseReceiver.poll(DatabaseReceiver.java:117)
    at com.mirth.connect.donkey.server.channel.PollConnector$PollConnectorTask.run(PollConnector.java:131)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: '2015-8-10 09:08:44'
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4206)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4140)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2597)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2758)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2826)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
    at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1302)
    at com.mirth.connect.connectors.jdbc.DatabaseDispatcherQuery.send(DatabaseDispatcherQuery.java:130)
EN

回答 3

Stack Overflow用户

发布于 2017-10-30 00:52:57

问题是数据库期望yyyy-MM-dd作为日期,而您提供的是yyyy-M-dd hh:mm:ss (注意月份是一个数字)。

将日期格式设置为两位数的月份,并删除时间部分。如果要提供时间,则数据库类型应为DATETIME。

票数 1
EN

Stack Overflow用户

发布于 2015-08-25 16:25:20

它非常具有描述性:Truncated incorrect DOUBLE value: '2015-8-10 09:08:44'

值(日期)不是double类型。

在DB中将str_create_datestr_created定义为double,但您正在向其写入Date类型,但该类型不匹配。

如果不是这样,您可以将您的DB模式复制到这里进行验证吗?

票数 0
EN

Stack Overflow用户

发布于 2020-02-21 04:33:12

vim到/opt/mirthconnect/conf/mirth.properties

在数据库url下,复制以下内容:jdbc:mysql://localhost/mirthdb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

新的JavaMysql odbc似乎将此作为一项要求,我认为这是出于安全考虑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31915228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档