Example: Using the java.sql.Struct Interface for a Structured UDT Parameter - Analytics Database - Teradata Vantage

SQL External Routine Programming

Deployment
VantageCloud
VantageCore
Edition
Enterprise
IntelliFlex
VMware
Product
Analytics Database
Teradata Vantage
Release Number
17.20
Published
June 2022
ft:locale
en-US
ft:lastEdition
2023-07-11
dita:mapPath
iiv1628111441820.ditamap
dita:ditavalPath
qkf1628213546010.ditaval
dita:id
B035-1147
lifecycle
latest
Product Category
Teradata Vantageā„¢
CREATE TYPE EMPLOYEE AS (empid int,
                         first_name varchar(20),
                         last_name varchar(20),
                         salary decimal(10,2))

REPLACE PROCEDURE getEmployeeDetails(IN E1 Employee)
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA 
EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.getEmployeeDetails';

public static void getEmployeeDetails(java.sql.Struct E1) throws SQLException
{
  String objname;
  Object[] elements;

  objname = E1.getSQLTypeName();
  System.out.println("Object Name:"+ objname);

  elements = E1.getAttributes();
  System.out.println("Employee Id: " + (Integer)elements[0]);
  System.out.println ("Employee name:  " + (String) elements[1] + 
                                       " " + (String)elements[2] );
  System.out.println("Salary: "+ (BigDecimal)elements[3]);
}