Здравствуйте! Имеется файл, с которого считываются данные и они же добавляются в БД Oracle.
Проблема на примере:
— Поле VARCHAR2, размером 3 байта
— Пытаемся вставить туда 'абв' и тут же ловим exception: value too large for column (actual: 6, maximum: 3)"
Т.Е. каждый символ кодируется двумя байтами. Окей, подумал я, сейчас перекодируем. В БД стоит кодировка AL32UTF8. Кодировка файла - CP866.
Попытка безуспешной перекодировки:
Encoding srcEncodingFormat = Encoding.GetEncoding(866);
Encoding dstEncodingFormat = Encoding.UTF8;
byte[] originalByteString = srcEncodingFormat.GetBytes(s);
byte[] convertedByteString = Encoding.Convert(srcEncodingFormat,
dstEncodingFormat, originalByteString);
s = dstEncodingFormat.GetString(convertedByteString);
Изменять тип колонок нельзя. Каким образом можно решить эту проблему? Возможно ли как-то явно указать кодировку добавляемого значения при вставке данных в БД?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть таблицы: Products, Tags и связывающая их ProductTags
Как правильно остановить данный скрипт выполнения на определенном месте, кликая на кнопку