35.24 SDO_UTIL.FROM_WKBGEOMETRY

書式

SDO_UTIL.FROM_WKBGEOMETRY(
     geometry  IN BLOB,
     srid      IN NUMBER DEFAULT NULL
     ) RETURN SDO_GEOMETRY;

または

SDO_UTIL.FROM_WKBGEOMETRY(
     geometry  IN CLOB,
     srid      IN NUMBER DEFAULT NULL
     ) RETURN SDO_GEOMETRY;

または

SDO_UTIL.FROM_WKBGEOMETRY(
     geometry  IN VARCHAR2,
     srid      IN NUMBER DEFAULT NULL
     ) RETURN SDO_GEOMETRY;

説明

Well-Known Binary (WKB)またはExtended Well-Known Binary形式のジオメトリを空間ジオメトリ・オブジェクトに変換します。

パラメータ

geometry

SDO_GEOMETRY形式に変換する、WKB形式のジオメトリを指定します。

srid

入力ジオメトリを記述するオプションのSRID。指定した値は、入力ジオメトリのSRID指定よりも優先されます。

使用上のノート

ノート:

SDO_UTIL.FROM_WKBGEOMETRYファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでOracle JVMが有効になっている場合にのみサポートされます。Oracle JVMを有効にするには、Oracle Autonomous Databaseサーバーレスの使用Oracle Javaの使用で詳細を参照してください。

入力ジオメトリは、Well-Known Binary (WKB)形式か、またはExtended Well-Known Binary形式です。入力は、オプションでASCIIとして16進エンコードされたCLOBまたはVARCHAR2にすることができます。結果は、入力ジオメトリを表すために必要な最も適した最小限のSDO_GEOMETRY型になります。

このファンクションは、『ISO 13249-3, Information technology - Database languages - SQL Multimedia and Application Packages - Part 3: Spatial』のSQL Multimedia勧告を基にしています。

SDO_GEOMETRYオブジェクトをWKB形式に変換するには、SDO_UTIL.TO_WKBGEOMETRYファンクションを使用します。

次の例は、WKBおよびWKT形式への変換と逆変換を実行し、WKBおよびWKTジオメトリが有効かどうかを確認しています。(例では、「空間データの挿入、索引付けおよび問合せの例」の特にCOLA_MARKETS表のcola_bジオメトリについて、その定義およびデータを使用しています。)

DECLARE
  wkbgeom BLOB;
  wktgeom CLOB;
  val_result VARCHAR2(5);
  geom_result SDO_GEOMETRY;
  geom SDO_GEOMETRY;
BEGIN
SELECT c.shape INTO geom FROM cola_markets c WHERE c.name = 'cola_b';
 
-- To WBT/WKT geometry
wkbgeom := SDO_UTIL.TO_WKBGEOMETRY(geom);
wktgeom := SDO_UTIL.TO_WKTGEOMETRY(geom);
DBMS_OUTPUT.PUT_LINE('To WKT geometry result = ' || TO_CHAR(wktgeom));
 
-- From WBT/WKT geometry
geom_result := SDO_UTIL.FROM_WKBGEOMETRY(wkbgeom);
geom_result := SDO_UTIL.FROM_WKTGEOMETRY(wktgeom);
 
-- Validate WBT/WKT geometry
val_result := SDO_UTIL.VALIDATE_WKBGEOMETRY(wkbgeom);
DBMS_OUTPUT.PUT_LINE('WKB validation result = ' || val_result);
val_result := SDO_UTIL.VALIDATE_WKTGEOMETRY(wktgeom);
DBMS_OUTPUT.PUT_LINE('WKT validation result = ' || val_result);
 
END;/
 
To WKT geometry result = POLYGON ((5.0 1.0, 8.0 1.0, 8.0 6.0, 5.0 7.0, 5.0 1.0))
WKB validation result = TRUE                                                    
WKT validation result = TRUE