varchar(1024) フィールドを含むテーブルがあります。このフィールドには、16 進数でエンコードされた文字列を持つ文字列が含まれています。このテーブルは自動的に入力され、ユーザーがこれをダウンロードできるように SP を提供する必要があるため、16 進数を人間が読める形式に戻す必要があります。
このステートメントを手動で実行すると (フィールドから Hex データを取得)、問題なく動作します。
SELECT X'5468697320697320612074657374206D6573736167652031323334353637383930';
しかし、フィールド/列名を呼び出すときにこれを機能させる実際の例が見つかりません。いくつかの例を見つけましたが、これらは null または 0 を返すだけです。
X と UnHex() を試しましたが、どちらも結果が得られません。
どこが間違っていますか?
ありがとう
編集:
さて、もう少しテストを行った後、そもそもデータベースに書き込まれている方法に違いないようです。
これは、データベース エントリを作成する SP を呼び出す従来の ASP ページです。このメソッドでは、DB への書き込みが機能し、フィールドに HEX コンテンツが表示されます。フィールドの内容をコピーし、これを Select X'123123' に入れると、必要に応じて ASCII 値が得られます。
これを Select として試すと、これは失敗し、ゼロまたは Null が返されます。
SELECT Message_Body_Hex, UNHEX(Message_Body_Hex) FROM messages_inbound
戻り値:
Message_Body_Hex......unhex(Message_Body_Hex)
417265612032........(ヌル)
まだ混乱しています!:)