Я пытаюсь обновить столбец VARRAY в таблице Oracle с помощью Oracle.ManagedDataAccess.Client в C#
У меня есть следующий код:
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);
/