全部產品
Search
文件中心

AnalyticDB:URL函數

更新時間:May 22, 2025

本文介紹URL函數的基本文法和樣本。

PARSE_URL

PARSE_URL(url, part [,key] )
  • 命令說明:返回urlpart所指定的內容。

    規則如下:

    • part取值為QUERY時,返回key所對應value的值。

    • urlpartkey值為NULL時,返回NULL。

    • part取值不符合要求時,返回NULL。

    part取值不區分大寫,取值如下:

    • HOST:URL的主機名稱或IP地址。

    • PATH:URL的路徑。例如 /path/to/resource

    • QUERY:URL的查詢字串,即以?開頭的內容。

    • REF:URL的片段標識符,即以 # 開頭的內容。

    • PROTOCOL:URL的協議。例如 httphttps

    • AUTHORITY:URL的使用者資訊、主機名稱及連接埠。

    • FILE:URL的檔案路徑。

    • USERINFO:URL的使用者資訊,包括使用者名稱和密碼。

  • 輸入實值型別:urlpartkey均為STRING類型。

  • 傳回值類型:STRING。

  • 樣本:

    • 返回url中的主機名稱或IP地址。語句如下:

      SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST');

      返回結果如下:

      example.com
    • 返回url中的路徑。語句如下:

      SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PATH');

      返回結果如下:

      /over/there/index.dtb
    • 返回url中的查詢字串。語句如下:

      SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'QUERY', 'type');

      返回結果如下:

      animal
    • 返回url中的片段標識符。語句如下:

      SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'REF');

      返回結果如下:

      nose
    • 返回url的協議。語句如下:

      SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PROTOCOL');

      返回結果如下:

      file
    • 返回url的使用者資訊、主機名稱及連接埠。語句如下:

      SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'AUTHORITY');

      返回結果如下:

      username:password@example.com:8042
    • 返回url的使用者資訊。語句如下:

      SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'USERINFO');

      返回結果如下:

      username:password

URL_DECODE

URL_DECODE(input)
  • 命令說明:解碼application/x-www-form-urlencoded編碼的字串並返回結果。

    規則說明:當input值為NULL時,返回NULL。

    編碼規則如下:

    • a~z、A~Z、0-9字元保持不變。

    • 英文句號(.)、短劃線(-)、星號(*)和底線(_)保持不變。

    • 加號(+)轉換為空白格。

    • %xy的序列轉為對應的位元組值,連續的位元組值根據UTF-8格式解碼為對應的字串。

  • 輸入實值型別:STRING。

  • 傳回值類型:STRING。

  • 樣本:

    解碼application/x-www-form-urlencoded編碼的參數並返回結果,語句如下:

    SELECT url_decode('%E7%A4%BA%E4%BE%8Bfor+url_decode%3A%2F%2F+%28fdsf%29');

    返回結果如下:

    樣本for url_decode:// (fdsf)

URL_ENCODE

URL_ENCODE(input)
  • 命令說明:返回字串的application/x-www-form-urlencoded編碼形式。

    規則說明:當input為NULL時,返回NULL。

    編碼規則如下:

    • a~z、A~Z、0-9字元保持不變。

    • 英文句號(.)、短劃線(-)、星號(*)和底線(_)保持不變。

    • 空格轉換為加號(+)。

    • 其他字元根據UTF-8格式編碼轉為位元組值,然後將每個位元組值表示為%xy的格式,xy是該字元的十六進位表示方式。

  • 輸入實值型別:STRING。

  • 傳回值類型:STRING。

  • 樣本:

    返回樣本for url_encode:// (fdsf)application/x-www-form-urlencoded編碼形式。

    SELECT url_encode('樣本for url_encode:// (fdsf)');

    返回結果如下:

    %E7%A4%BA%E4%BE%8Bfor+url_encode%3A%2F%2F+%28fdsf%29

URL_EXTRACT_FRAGMENT

URL_EXTRACT_FRAGMENT(url)
  • 命令說明:返回url中的片段標識符(即以#開頭的內容)。

    規則說明:

    • url為NULL或url無效時,返回NULL。

    • url中沒有片段標識符時,返回Null 字元串。

  • 輸入實值型別:STRING。

  • 傳回值類型:STRING。

  • 樣本:

    返回url中的片段標識符。語句如下:

    SELECT url_extract_fragment('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');

    返回結果如下:

    Ref1

URL_EXTRACT_HOST

URL_EXTRACT_HOST(url)
  • 命令說明:返回url中的主機名稱或IP地址。

    規則說明:當url為NULL或url無效時,返回NULL。

  • 輸入實值型別:STRING。

  • 傳回值類型:STRING。

  • 樣本:

    返回url中的主機名稱或IP地址。語句如下:

    SELECT url_extract_host('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');

    返回結果如下:

    example.com

URL_EXTRACT_PARAMETER

URL_EXTRACT_PARAMETER(url, parameter)
  • 命令說明:返回url的查詢部分中parameter參數指定的資訊。

    規則說明:當url為NULL、parameter為NULL或url的查詢部分中沒有parameter參數時,返回NULL。

  • 輸入實值型別:urlparameter均為STRING類型。

  • 傳回值類型:STRING。

  • 樣本:

    • 返回url中查詢字串中k1指定的資訊。語句如下:

      SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k1');

      返回結果如下:

      v1
    • 返回url中查詢字串中k5指定的資訊。語句如下:

      SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k5');

      返回結果如下:

      NULL

URL_EXTRACT_PATH

URL_EXTRACT_PATH(url)
  • 命令說明:返回url中的路徑資訊。

    規則說明:

    • url為NULL或url無效時,返回NULL。

    • url中沒有路徑時,返回Null 字元串。

  • 輸入實值型別:STRING。

  • 傳回值類型:STRING。

  • 樣本:

    返回url中的路徑資訊。語句如下:

    SELECT url_extract_path('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');

    返回結果如下:

    /path1/p.php

URL_EXTRACT_PORT

URL_EXTRACT_PORT(url)
  • 命令說明:返回url中的連接埠資訊。

    規則說明:當url為NULL、url無效或url中沒有連接埠時,返回NULL。

  • 輸入實值型別:STRING。

  • 傳回值類型:STRING。

  • 樣本:

    • 返回url中的連接埠資訊。語句如下:

      SELECT url_extract_port('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');

      返回結果如下:

      NULL
    • 返回url中的連接埠資訊。語句如下:

      SELECT url_extract_port('http://example.com:8080/path1/p.php?k1=v1&k2=v2#Ref1');

      返回結果如下:

      8080

URL_EXTRACT_PROTOCOL

URL_EXTRACT_PROTOCOL(url)
  • 命令說明:返回url中的協議資訊。

    規則說明:當url為NULL或url無效時,返回NULL。

  • 輸入實值型別:STRING。

  • 傳回值類型:STRING。

  • 樣本:

    • 返回url中的協議資訊。語句如下:

      SELECT url_extract_protocol('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');

      返回結果如下:

      http

URL_EXTRACT_QUERY

URL_EXTRACT_QUERY(url)
  • 命令說明:返回url中的查詢部分資訊。

    規則說明:

    • url為NULL或url無效,返回NULL。

    • url中沒有查詢部分的資訊時,返回Null 字元串。

  • 輸入實值型別:STRING。

  • 傳回值類型:STRING。

  • 樣本:

    • 返回url中查詢部分的資訊。語句如下:

      SELECT url_extract_query('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');

      返回結果如下:

      k1=v1&k2=v2