У меня есть функция С#, которая создает параметризованный запрос на вставку с использованием ODP.NET, который по какой-то причине продолжает возвращать исключение «ORA-01401: вставленное значение слишком велико для столбца».
Я тщательно проверил длину рассматриваемой строковой переменной, и она значительно ниже максимального размера столбца базы данных (длина 70 символов в столбце Varchar2 длиной 1024 символа). Что еще более странно, так это то, что если я вставляю значение как строку, а не как переменную параметра, вставка работает просто отлично. Вот код (параметризованный):
connectionString = GetConnectionString();
conn = new OracleConnection(connectionString);
OracleDataAdapter oda = new OracleDataAdapter();
conn.Open();
insertStatement = "INSERT INTO DOCS (ID, PATH, PAGES, USERID,SUFFIX, MASK) ";
insertStatement += "VALUES (:id, :itemUrl, 1, 'SHAREPOINT\\system',0,'000') ";
oda.InsertCommand = new OracleCommand(insertStatement, conn);
oda.InsertCommand.Parameters.Add(":id", docList[0].taskerID.ToString());
oda.InsertCommand.Parameters.Add(":itemUrl", itemUrl);
count += oda.InsertCommand.ExecuteNonQuery();
Я думаю, что, возможно, я что-то упускаю здесь с ODP.NET или на самом деле есть ошибка с ODP.NET, с которой я сталкиваюсь. Я использую Oracle.DataAccess версии 9.2.0.7 на своем сервере. Есть идеи?