У меня проблема с двоичными данными, у меня есть код C #, который вставляет двоичные данные в таблицу, тип столбца - RAW(64)
, в некоторых случаях некоторые байты отсутствуют.Я обнаружил, что проблема в том, что если мои данные начинаются с 0xFFFE
, я смог создать такую ситуацию в sql:
CREATE TABLE BlobTable(
testData BLOB
);
, тогда я вставляю записи:
INSERT INTO BlobTable VALUES(hextoraw('FFFE01'));
INSERT INTO BlobTable VALUES(hextoraw('01'));
INSERT INTO BlobTable VALUES(hextoraw('FFFF01'));
INSERT INTO BlobTable VALUES(hextoraw('FFFEFFFEFFFE01'));
затемЯ делаю:
SELECT DUMP ( CAST ( testData AS RAW( 128 ) ) ) FROM BlobTable;
, и результат:
Typ=23 Len=1: 1
Typ=23 Len=1: 1
Typ=23 Len=3: 255,255,1
Typ=23 Len=5: 255,254,255,254,1
Так что, поверьте, проблема в начале составляет 0xFFFE
байтов, в обоих случаях, когда я конвертирую эти байты в RAWпервый 0xFFFE
отсутствует.Есть ли у вас идеи, почему это происходит?Также мне интересно, если любая другая комбинация байтов создает такую же ситуацию.