OracleでのSQLについて質問です。

下記コードのようにシャープ記号(#)が使われる場合がありますが、記号の用法が記載されているリファレンス
のようなものを見つけることができませんでした。記載されている資料等があれば教えてください。

TO_NUMBER(TRANSLATE('123','12345','#####'))

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/08/01 01:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:TomoTana No.1

回答回数8ベストアンサー獲得回数2

ポイント60pt
TO_NUMBER(TRANSLATE('123','12345','#####'))

↑は、TRANSLATE('123','12345','#####') の結果を

TO_NUMBER() するものです。

TRANSLATE関数

http://www.shift-the-oracle.com/sql/functions/translate.html

TRANSLATE('123','12345','#####')

  • 文字列「123」を以下のように書き換える
    • 「1」→「#」
    • 「2」→「#」
    • 「3」→「#」
    • 「4」→「#」
    • 「5」→「#」

すなわち結果は「###」となります。

では TO_NUMBER('###') はどうなるかというと

TO_NUMBER関数

http://www.shift-the-oracle.com/sql/functions/to_number.html

第一引数を数値に変換、、

たぶんエラーになりますね。

id:hideo-apa No.2

回答回数24ベストアンサー獲得回数2

ポイント10pt

詳細な解説はTomoTanaがされているので、資料を。

OTNへの登録が必要ですが、無料でできます。

http://otn.oracle.co.jp/onlineservices/sqlconst11g/index.html

  • id:mikadeko
    ご回答くださった方ありがとうございました。
    回答を元に調査した結果、TomoTana様の言うとおり単に「#」に変換していただけで、記号自体に意味はありませんでした。
    その後、「#」に変換したものを判定している箇所が見つかった次第です。

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

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

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

回答リクエストを送信したユーザーはいません