我使用数据库连接器在Mule-4数据库中插入数据,插入查询语句看起来像这样。我已经测试过很多次了。下面是用于插入数据
的SQL查询INSERT INTO TABLE
(
GUID,
TIME_GENERATED_ON,
ENVELOPE_ID,
SUBJECT,
USER_NAME,
EMAIL, STATUS,
CREATED_ON, VOID_ON, DECLINED_ON, SENT_ON, DELIVERED_ON,
AC_STATUS, AC_STATUS_DATE, AC_HOLDER,
AC_HOLDER_EMAIL, AC_HOLDER_LOCATION, SIGNING_LOCATION, SENDER_IP_ADDRESS,
ENVELOPE_ID_STAMPING, AUTHORITATIVE_COPY, RAW_XML_DATA,WORK_OUI,UPI
)
VALUES
(
:guid,
TO_TIMESTAMP(:timeGenerated, 'YYYY-MM-DD"T"HH24:MI:SS.ff'),
:EnvelopeID, :Subject, :UserName,
:Email,
:Status,
TO_TIMESTAMP (:Created, 'YYYY-MM-DD"T"HH24:MI:SS.ff'),
TO_TIMESTAMP (:Void, 'YYYY-MM-DD"T"HH24:MI:SS.ff'),
TO_TIMESTAMP (:Declined, 'YYYY-MM-DD"T"HH24:MI:SS.ff'),
TO_TIMESTAMP (:Sent, 'YYYY-MM-DD"T"HH24:MI:SS.ff'),
TO_TIMESTAMP (:Delivered, 'YYYY-MM-DD"T"HH24:MI:SS.ff'),
:ACStatus,
TO_TIMESTAMP (:ACStatusDate, 'YYYY-MM-DD"T"HH24:MI:SS.ff'),
:ACHolder,
:ACHolderEmail, :ACHolderLocation, :SigningLocation, :SenderIPAddress,
:EnvelopeIdStamping, :AuthoritativeCopy, :originalPayload, :WorkOui, :upi
)
输入参数如下所示。我正在动态地提供它。
{
guid:payload.Guid,
timeGenerated :payload.TimeGenerated,
EnvelopeID:payload.EnvelopeID,
Subject: payload.Subject,
UserName : payload.UserName,
Email:payload.Eamil,
Status:payload.Status,
Created: payload.Created,
Void:payload.Void,
Declined:payload.Declined,
Sent :payload.Sent,
Delivered: payload.Delivered,
ACStatus :payload.ACStatus,
ACStatusDate :payload.ACStatusDate,
ACHolder :payload.ACHolder,
ACHolderEmail :payload.ACHolderEmail,
ACHolderLocation : payload.ACHolderLocation,
SigningLocation : payload.SigningLocation,
SenderIPAddress: payload.SenderIPAddress,
EnvelopeIdStamping: payload.EnvelopeIdStamping,
AuthoritativeCopy :payload.AuthoritativeCopy,
originalPayload:vars.originalPayload,
WorkOui:payload..WorkOui,
upi:payload.upi
}
我得到这个错误,有人可以帮助这个
org.mule.runtime.api.exception.MuleRuntimeException: java.sql.SQLException: Invalid column type
Caused by: org.mule.db.commons.shaded.api.exception.connection.QueryExecutionException: Invalid column type
Caused by: java.sql.SQLException: Invalid column type
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:8921) ~[?:?]
当使用xml作为数据库列的参数之一时,使用write(payload)
解决了这个问题,现在最终参数是
{
guid: payload.Guid,
timeGenerated: payload.TimeGenerated,
EnvelopeID: payload.EnvelopeID,
Subject: payload.Subject,
UserName: payload.UserName,
Email: payload.Email,
Status: payload.Status,
Created: payload.Created,
Void: payload.Void,
Declined: payload.Declined,
Sent: payload.Sent,
Delivered: payload.Delivered,
ACStatus: payload.ACStatus,
ACStatusDate: payload.ACStatusDate,
ACHolder: payload.ACHolder,
ACHolderEmail: payload.ACHolderEmail,
ACHolderLocation: payload.ACHolderLocation,
SigningLocation: payload.SigningLocation,
SenderIPAddress: payload.SenderIPAddress,
EnvelopeIdStamping: payload.EnvelopeIdStamping,
AuthoritativeCopy: payload.AuthoritativeCopy,
originalPayload: *write(vars.originalPayload)*,
WorkOui: payload.WorkOui,
upi: payload.upi
}