Первые байты столбца RAW обрезаны - PullRequest
2 голосов
/ 25 марта 2019

У меня проблема с двоичными данными, у меня есть код 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 отсутствует.Есть ли у вас идеи, почему это происходит?Также мне интересно, если любая другая комбинация байтов создает такую ​​же ситуацию.

...