<query connection-id="janino">
import java.sql.DriverManager;
import java.sql.Connection;
import java.lang.System;
import com.vividsolutions.jts.io.WKBReader;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.PrecisionModel;
Connection conn = null;
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@the-host:1521:the-db"
,"user"
,"password"
);
set("dest_conn", conn);
next();
<query connection-id="source_db">
SELECT name
,geom.STAsBinary() as geom_wkb
FROM table
<query connection-id="janino">
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.io.WKBReader;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.PrecisionModel;
import java.sql.Blob;
import org.hibernatespatial.oracle.SDOGeometryType;
import org.hibernatespatial.oracle.SDOGeometry;
import org.hibernatespatial.oracle.OracleJDBCTypeFactory;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Struct;
Blob blob = (Blob) get("geom_wkb");
int blobLen = (int) blob.length();
WKBReader wkbReader = new WKBReader( new GeometryFactory( new PrecisionModel( PrecisionModel.FLOATING ), 4326 ) );
Geometry geom = wkbReader.read( blob.getBytes(1, blobLen ) );
SDOGeometryType sdoGeomType = new SDOGeometryType();
SDOGeometry sdoGeom = sdoGeomType.convertJTSGeometry( (Geometry) geom );
Struct oracleStruct = new OracleJDBCTypeFactory().createStruct( sdoGeom, (Connection) get("dest_conn") );
set("sdo_geom_struct", oracleStruct);
next();
<script connection-id="dest_db">
INSERT INTO TABLE(
NAME
,GEOM
) VALUES (
?name
,?sdo_geom_struct
)
</script>
</query>
</query>
conn.close();
</query>