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);