SQL Serverのストアドプロシージャに関する質問です。

ストアドプロシージャ内で、10進数16桁の数値を、16文字の16進数文字列に
変換してデータベースに格納したいのですがうまくいきません。


@NUM_VALUE = 1000000000000000 (10進数16桁)

変換↓

@STR_VALUE = ”00038D7EA4C68000” (16文字の16進数文字列)


HEX関数のようなものは存在するのでしょうか。
もしやり方をご存知の方がいらしたら教えてください。
簡単なサンプルがあると助かります。

環境
OS:Windows 2000
データベース:Microsoft SQL Server 2000 (SP3)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/03/04 11:07:27
  • 終了:--

回答(1件)

id:Chaborin No.1

ちゃぼりん回答回数189ベストアンサー獲得回数72006/03/04 14:51:13

ポイント80pt

bigint型からvarbinary型への変換で、16桁の整数を16進数へ変換することが可能です。


--Sample

DECLARE @testNumber as bigint

set @testNumber = 1000000000000000

SELECT CAST(@testNumber as varbinary) as resultHex

--


ちなみに、numeric型からは変換できないようですし、変換値も保証されていないそうです。

また、インラインで1000000000000000を記述すると、10桁以上の数は暗黙でnumeric型として扱われるので、明示的にbigint型を宣言した変数を用意して、値を代入する必要があるみたいです。

id:nandaroukun

返信遅くなってすいません。また、ありがとうございます。

実際のコードにて、できることを確認しました。

ありがとうございます。

2006/03/08 01:02:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません