У меня есть следующий код:
Код: Выделить всё
OracleCommand cmd2 = new OracleCommand(
"update mytable set hcodes = :hcodes where ich = 'xxx'", ora);
cmd2.Parameters.Add(new OracleParameter{ParameterName = ":hcodes",UdtTypeName = "HCODE_ARRAY"});
cmd2.Prepare();
cmd2.Parameters[":hcodes"].Value = new string[] { "ABCD", "DEFG" };
cmd2.ExecuteNonQuery();
Oracle.ManagedDataAccess.Client.OracleException: 'ORA-00932: несовместимые типы данных: ожидаемый HCODE_ARRAY получил CHAR'
Код: Выделить всё
HCODE_ARRAYКод: Выделить всё
CREATE OR REPLACE TYPE HCODE_ARRAY
AS
VARRAY(5) of varchar2(4);
/
Код: Выделить всё
OracleCommand cmd2 = new OracleCommand(
"update mytable set hcodes = scrpt_app.HCODE_ARRAY('E123','E456') where ich = 'xxx'", ora);
Код: Выделить всё
OracleCommand cmd2 = new OracleCommand(
"update mytable set hcodes =
HCODE_ARRAY(:hcodes) where ich = 'xxx'", ora);
cmd2.Parameters.Add(":hcodes", OracleDbType.Varchar2);
cmd2.Parameters[":hcodes"].Value = "'E123','E456','E789'";
cmd2.ExecuteNonQuery();