问题描述
我有一个需求,我需要从 Mule 流调用在 Oracle 上的存储过程中定义的 UDT 类型。为了实现这一点,我正在创建一个 JDBC 数组类型,如:
%dw 2.0
output application/java
---
{
inParam: Db::createArray("Database_Config","ADDRESS_TAB",[ Db::createStruct("Database_Config","ADDRESS_TAB_TYPE",["TESt-Mule",**("2015-07-04T21:01:01") as DateTime**,"WB"])
])
}
oracle ADDRESS_TAB_TYPE 是
ADDRESS_TAB TABLE OF ADDRESS_TAB_TYPE
Name Null? Type
------------------- ----- -------------
IADDRESS_NAME VARCHAR2(240)
IINACTIVE_DATE DATE
ISTATE VARCHAR2(150)
Oracle 端定义的日期类型为 DATE
ERROR 2021-03-18 23:14:06,971 [[MuleRuntime].uber.04: [playground].oracle-db-loc-testFlow.cpu_INTENSIVE @4d9589a8] [processor: ; event: 876ad840-8811-11eb-a282-a483e7749b4e] org.mule.runtime.core.internal.exception.OnErrorPropagateHandler:
********************************************************************************
Message : "org.mule.weave.v2.el.ExpressionFunctionCallException: Exception while executing createStruct("Database_Config","WB"])
]) cause: An error occurred when trying to create JDBC Structure. Fail to convert to internal representation: 2015-07-04T21:01:01Z
Trace:
at callFunction (UnkNown)
at createStruct (line: -1,column: -1)
at createArray (line: 5,column: 73)
at main (line: 5,column: 12)
我正在尝试将此日期值传递给 oracle,感谢任何帮助。谢谢!
解决方法
我使用了这个转换: fun dateTimeFormat(inputDateTime) = inputDateTime as DateTime as String{format: "yyyy-MM-dd HH:mm:ss.SSS"}
它奏效了。 谢谢!
,这里的建议对你有帮助吗?