.Net Core - dotConnect For Oracle Type Cast Error
Posted: Fri 06 Apr 2018 09:07
We are using .Net Core 2.0 as development environment and We have configured to use dotConnect For Oracle V9.5.483 in Direct mode.
However following code fails with
My objects are as follows
My Procedure is as follows
However following code fails with
"Cannot convert object of type 'System.Object' to object of type 'Devart.Data.Oracle.OracleObject'.",
Code: Select all
OracleType localPay5001Type = OracleType.GetObjectType("WESTCORE", "OBJ_LOCALPAY_5001", conn);
var localPay5001Obj = new OracleObject(localPay5001Type)
{
["CRM_NO"] = localPay5001.CrmNo,
["TRANS_AMOUNT"] = localPay5001.Amount,
["TRANS_CURRENCY"] = localPay5001.Currency,
["TRANS_SHORTDESC"] = localPay5001.ShortDesc,
["TRANS_LONGDESC"] = localPay5001.Desc
};
// String.IsNullOrWhiteSpace(localPay5001.Desc) ? (object) DBNull.Value : localPay5001.ShortDesc;
var inputParameter =
new OracleParameter("INPUT_OBJ", OracleDbType.Object, localPay5001Obj, ParameterDirection.Input) {ObjectTypeName = "OBJ_LOCALPAY_5001"};
command.Parameters.Add(inputParameter);
var resultParameter = new OracleParameter("OUTPUT_OBJ", OracleDbType.Object, ParameterDirection.Output) {ObjectTypeName = "OBJ_SUCCESS"};
command.Parameters.Add(resultParameter);
command.ExecuteNonQuery();
Code: Select all
create or replace TYPE OBJ_LOCALPAY_5001
AS OBJECT
(
CRM_NO VARCHAR2(5),
TRANS_AMOUNT NUMBER(18,2),
TRANS_CURRENCY VARCHAR2(2),
TRANS_SHORTDESC VARCHAR2(25 BYTE),
TRANS_LONGDESC VARCHAR2(80)
)
create or replace TYPE OBJ_SUCCESS
AS OBJECT
(
BRANCH_CODE VARCHAR2(2),
TRANS_NO VARCHAR2(11),
TRANS_CODE VARCHAR2(3),
TRANS_DATE DATE,
TRANS_EXCHANGE_RATE NUMBER(17,2)
)
Code: Select all
PROCEDURE LOCALPAY_5003(INPUT_OBJ IN WESTCORE.OBJ_LOCALPAY_5003, OUTPUT_OBJ OUT WESTCORE.OBJ_SUCCESS);