Sql 原始列第一个字节被截断

Sql 原始列第一个字节被截断,sql,oracle,oracle12c,Sql,Oracle,Oracle12c,我有一个二进制数据的问题,我有一个C代码,它将二进制数据插入表中,列类型是RAW64,在某些情况下缺少一些字节。我发现问题在于,如果我的数据以0xFFFE开头,我就能够在sql中创建这样的情况: 创建表BlobTable 测试数据块 ; 然后我插入记录: 插入BlobTable值EXTORAW'FFFE01'; 插入BlobTable值EXTORAW'01'; 插入BlobTable值EXTORAW'FFFF01'; 插入BlobTable值EXTORAW'FFFEFFFEFFFE01'; 那么

我有一个二进制数据的问题,我有一个C代码,它将二进制数据插入表中,列类型是RAW64,在某些情况下缺少一些字节。我发现问题在于,如果我的数据以0xFFFE开头,我就能够在sql中创建这样的情况:

创建表BlobTable 测试数据块 ; 然后我插入记录:

插入BlobTable值EXTORAW'FFFE01'; 插入BlobTable值EXTORAW'01'; 插入BlobTable值EXTORAW'FFFF01'; 插入BlobTable值EXTORAW'FFFEFFFEFFFE01'; 那么我会:

从BlobTable中选择DUMP CAST testData作为RAW 128; 结果是:

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

因此,请相信te的问题是开始时的0xFFFE字节,在这两种情况下,当我将这些字节转换为原始字节时,第一个0xFFFE丢失。你知道为什么会这样吗?另外,我想知道是否其他字节组合也会造成同样的情况。

它是一个无法使用的unicode字符-是的,但1 RAW不应以任何方式解释。RAW和LONG RAW数据类型用于Oracle数据库在不同系统之间移动数据时不进行解释或转换的数据。2为什么只跳过第一个\uff哪个Oracle版本?它在11号对我来说非常好。2@MarmiteBomber我已经在Oracle11.2g上检查了这段代码,它运行得很好,然后我检查了一下,得到了与发布的完全相同的结果。也许最新版本的Oracle中有一个bug?我已经向Oracle提出了一个问题,我们将拭目以待。无论如何,感谢@MarmiteBomber提供的信息,它在旧版本上运行良好,帮助我确定问题可能不在我的代码中。