OceanBaseデータベースのOracleモードでは、SDO_GEOMETRY型はメンバー関数GET_WKB()、GET_WKT()、およびGET_GEOJSON()をサポートしており、SDO_GEOMETRY空間オブジェクトをWell-Known-Binary (WKB) データ形式、Well-Known-Text (WKT) データ形式、およびJSONデータ形式に変換して出力することができます。
GET_WKB()
GET_WKB() 関数は、空間オブジェクトをWell-Known-Binary (WKB) データ形式のバイナリ文字列に変換します。WKB形式は、空間幾何オブジェクトを表現するための一般的なバイナリ形式です。
例:
obclient [SYS]> SELECT SDO_GEOMETRY(2001, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,1,1), SDO_ORDINATE_ARRAY(10,500)).GET_WKB() AS test_get_wkb FROM dual;
戻り値は次のとおりです:
+--------------------------------------------+
| TEST_GET_WKB |
+--------------------------------------------+
| 00000000014024000000000000407F400000000000 |
+--------------------------------------------+
1 row in set
GET_WKT()
GET_WKT() 関数は、空間オブジェクトをWell-Known-Text (WKT) データ形式の文字列に変換します。WKT形式は、空間幾何オブジェクトを表現するための一般的なテキスト形式です。
例:
obclient [SYS]> SELECT SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(10, 50, NULL), NULL, NULL).GET_WKT() AS test_get_wkt FROM dual;
戻り値は次のとおりです:
+---------------+
| TEST_GET_WKT |
+---------------+
| POINT (10 50) |
+---------------+
1 row in set
GET_GEOJSON()
GET_GEOJSON() 関数は、空間オブジェクトをJSONデータ形式の文字列に変換します。
例:
obclient [SYS]> SELECT SDO_GEOMETRY(2001, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,1,1), SDO_ORDINATE_ARRAY(10,500)).GET_GEOJSON() AS test_get_geojson FROM dual;
戻り値は次のとおりです:
+-----------------------------------------------+
| TEST_GET_GEOJSON |
+-----------------------------------------------+
| { "type": "Point", "coordinates": [10, 500] } |
+-----------------------------------------------+
1 row in set