long()

値を64ビット整数に変換します。

構文

long(EXPR)

パラメーター

EXPR
64ビット整数に変換する値または式。

説明

long()関数は引数を64ビット整数(long)に変換して返します。引数がnullの場合はnullを返します。変換に失敗した場合もnullを返します。

サポートする入力型別の動作は以下のとおりです。

  • 数値: longValue()を呼び出して変換します。値が64ビット整数の範囲を超えるfloatやdoubleの場合はnullを返します。
  • IPv4アドレス: 4バイトをunsigned整数に変換します。たとえば192.0.2.13221225985として返されます。
  • 文字列: 10進数としてパースします。空文字列の場合はnullを返します。
  • 配列またはリスト: 各要素に対して再帰的に変換を実行します。

現在は10進数(基数10)のみサポートしています。他の基数を指定するとクエリのパース時にエラーが発生します。

エラーコード

エラーコード説明
9084010以外の基数を指定した場合

使用例

これらの使用例で参照するWEB_APACHE_SAMPLEテーブルを準備するには、クエリ実習用データを参照してください。

  1. 接続元IPアドレス(src_ip)を64ビット整数に変換する

    table limit=5 WEB_APACHE_SAMPLE | eval result = long(src_ip) | fields src_ip, result
    | # result: IPアドレスをunsigned整数に変換した値
    
  2. レスポンスサイズ(bytes)を64ビット整数に変換する

    table limit=5 WEB_APACHE_SAMPLE | eval result = long(bytes) | fields bytes, result
    | # result: bytesフィールドと同じ64ビット整数値
    
  3. 変換できない文字列

    json "{'val': 'invalid'}" | eval result = long(val)
    | # result: null
    
  4. NULL入力

    json "{'val': null}" | eval result = long(val)
    | # result: null
    

互換性

long()関数はSonar 4.0以前のバージョンから提供されています。