JDBC アプリケーションを作成しています。私の仕事は、SQLサーバーからデータを取得して暗号化し、別のテーブルにvarbinary
フィールドとして保存することです。10 進数フィールドを除くすべての SQL データ型をバイナリに正常に変換しました。
getBytes()
この10進数フィールドのバイトを取得するためにJDBCのメソッドを使用しています。しかし、受信しているバイトは有効なバイトではありません。たとえば、10 進数を 2 進数に変換する 1 つのクエリを SQL で実行しています。
declare @deci decimal(18,2)
set @deci = 2.33
print cast(@deci as varbinary)
結果として -- 0x12020001E9000000
(アプリケーションが正しく動作するためには、JDBC 側でこのバイナリが必要です): (5 バイト)
しかし、JDBC側では(同じ値に対して)バイトを取得します- 2,1,-23,3,0
(5バイト)(各バイトの値を出力しています)
誰でも違いを理解するのを手伝ってもらえますか?? これらの JDBC バイトを上記に変換する方法varbinary
前もって感謝します