ST_AsBinary

定義

ST_AsBinary は、ジオメトリ オブジェクトを入力として、その WKB 表現を返します。

構文

Oracle および PostgreSQL

sde.st_asbinary (geometry sde.st_geometry)

SQLite

st_asbinary (geometry geometryblob)

戻り値のタイプ

Oracle および PostgreSQL

ST_Geometry

SQLite

Geometryblob

この例では、レコード 1111 の WKB 列に、レコード 1100 の GEOMETRY 列の内容を入力しています。

Oracle

CREATE TABLE sample_points (
 id integer not null, 
 geometry sde.st_geometry, 
 wkb blob
);

INSERT INTO SAMPLE_POINTS (id, geometry) VALUES (
 1100,
 sde.st_geometry ('point (10 20)', 4326)
);

INSERT INTO SAMPLE_POINTS (id, wkb) VALUES (
 1111,
 (SELECT sde.st_asbinary (geometry) FROM sample_points WHERE id = 1100)
);

SELECT id, sde.st_astext (sde.st_geomfromwkb (wkb, 4326))
 FROM SAMPLE_POINTS
 WHERE id = 1111;

ID 	     Point 
1111     POINT (10.00000000 20.00000000)

PostgreSQL

CREATE TABLE sample_points (
 id serial, 
 geometry sde.st_geometry, 
 wkb bytea);

INSERT INTO sample_points (geometry) VALUES (
 sde.st_point (10, 20, 4326)
);

INSERT INTO sample_points (wkb) VALUES (
 (SELECT sde.st_asbinary (geometry) FROM sample_points WHERE id = 1100)
);

SELECT id, sde.st_astext (sde.st_geomfromwkb (wkb, 4326))
 FROM sample_points
 WHERE id = 1111;

ID 	     st_astext
1111     POINT (10 20)

SQLite

CREATE TABLE sample_points (
 id integer primary key autoincrement not null,
 wkb blob 
);

SELECT AddGeometryColumn(
 NULL, 
 'sample_points',
 'geometry',
 4326,
 'point',
 'xy',
 'null'
);

INSERT INTO sample_points (geometry) VALUES (
 st_point (10, 20, 4326)
);

INSERT INTO sample_points (wkb) VALUES (
 (SELECT st_asbinary (geometry) FROM sample_points WHERE id = 1)
);

SELECT id, st_astext (st_geomfromwkb (wkb, 4326))
 FROM sample_points
 WHERE id = 2;

ID 	     st_astext
2        POINT (10.00000000 20.00000000)

関連トピック

5/25/2014