ST_GeomFromWKB takes a well-known binary (WKB) representation and a spatial reference ID to return a geometry object.
Oracle
sde.st_geomfromwkb (wkb blob, srid integer)
PostgreSQL
st_geomfromwkb (wkb, srid integer)
st_geomfromwkb (esri_shape bytea, srid integer)
In the following example, the lines of results have been reformatted for readability. The spacing in your results will vary according to your online display. The following code illustrates how the ST_GeomFromWKB function can be used to create and insert a line from a WKB line representation. The following example inserts a record into the sample_geometries table with an ID and a geometry in spatial reference system 1 in a WKB representation.
Oracle
CREATE TABLE sample_geometries (id integer, geometry sde.st_geometry, wkb blob);
INSERT INTO sample_geometries (id, geometry) VALUES (
1901,
sde.st_geomfromtext ('point (1 2)', 0)
);
INSERT INTO sample_geometries (id, geometry) VALUES (
1902,
sde.st_geomfromtext ('linestring (33 2, 34 3, 35 6)', 0)
);
INSERT INTO sample_geometries (id, geometry) VALUES (
1903,
sde.st_geomfromtext ('polygon ((3 3, 4 6, 5 3, 3 3))', 0)
);
UPDATE sample_geometries
SET wkb = sde.st_asbinary (geometry)
WHERE id = 1901;
UPDATE sample_geometries
SET wkb = sde.st_asbinary (geometry)
WHERE id = 1902;
UPDATE sample_geometries
SET wkb = sde.st_asbinary (geometry)
WHERE id = 1903;
SELECT id, sde.st_astext (sde.st_geomfromwkb (wkb, 0))
FROM sample_geometries;
ID GEOMETRY
1901 POINT (1.00000000 2.00000000)
1902 LINESTRING (33.00000000 2.00000000, 34.00000000 3.00000000, 35.00000000 6.00000000)
1903 POLYGON ((3.00000000 3.00000000, 5.00000000 3.00000000, 4.00000000 6.00000000, 3.00000000 3.00000000))
PostgreSQL
CREATE TABLE sample_geometries (id integer, geometry st_geometry, wkb bytea);
INSERT INTO sample_geometries (id, geometry) VALUES (
1901,
st_geometry ('point (1 2)', 0)
);
INSERT INTO sample_geometries (id, geometry) VALUES (
1902,
st_geometry ('linestring (33 2, 34 3, 35 6)', 0)
);
INSERT INTO sample_geometries (id, geometry) VALUES (
1903,
st_geometry ('polygon ((3 3, 4 6, 5 3, 3 3))', 0)
);
UPDATE sample_geometries
SET wkb = st_asshape (geometry)
WHERE id = 1901;
UPDATE sample_geometries
SET wkb = st_asshape (geometry)
WHERE id = 1902;
UPDATE sample_geometries
SET wkb = st_asshape (geometry)
WHERE id = 1903;
SELECT id, st_astext (st_geomfromshape (wkb, 0))
FROM sample_geometries;
id st_astext
1901 POINT (1 2)
1902 LINESTRING (33 2, 34 3, 35 6)
1903 POLYGON ((3 3, 5 3, 4 6, 3 3))