例: INおよびOUT ST_Geometryパラメータに対してcom.teradata.fnc.ST_Geometryクラスを使用する - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

この例では、入力ジオメトリと重複するジオメトリを返します。

REPLACE PROCEDURE dupGeometry(IN geom_in ST_Geometry,
                              OUT geom_out ST_Geometry)
      LANGUAGE JAVA
      NO SQL
      PARAMETER STYLE JAVA 
      EXTERNAL NAME 
     	'UDF_JAR:UserDefinedFunctions.dupGeometry(com.teradata.fnc.ST_Geometry, com.teradata.fnc.ST_Geometry)';

public static void dupGeometry(com.teradata.fnc.ST_Geometry geom_in, com.teradata.fnc.ST_Geometry[] geom_out) throws SQLException
{
  java.io.InputStream inWKT;
  java.io.OutputStream outWKT;
  byte [] wkt;
  int srid;
  int numbytes;

  // Get the WKT InputStream and SRID of the input geometry.
  inWKT = geom_in.getWKT();
  srid = geom_in.getSRID();

  // Read the input WKT into a byte array.
  numbytes = inWKT.read(wkt);

  // Retrieve an OutputStream where we can write the WKT to the return geoemtry.
  If(geom_out == null | geom_out.lengh == 0)
       throw new SQLException();
  outWKT = geom_out[0].setWKT();

  // Write the input WKT to the return geometry
  outWKT.write(wkt);

  // Set the SRID of the return ST_Geometry to the same value as the input geometry
  geom_out[0].setSRID(srid);
}