15.10 - EXTERNAL NAME external_string_literal - Teradata Database

Teradata Database SQL Data Definition Language Syntax and Examples

prodname
Teradata Database
vrm_release
15.10
created_date
December 2015
category
Programming Reference
featnum
B035-1144-151K

A string that specifies the location of source and object components needed to build the external function.

For more information, see SQL Data Definition Language - Detailed Topics, B035-1184.

Initial Code

Single character code. Depending on the initial code in the sequence, the string specifies either the external function object name for the UDF or an encoded name or path for the components needed to create the external function.

D
Enables symbolic debugging for the UDF, which shows source code and displays variables by name. Without this option, UDFs can only be debugged at the machine instruction level. You should always specify this option for debugging purposes when UDFs are being tested. This option adds -g to the C compiler command line. See SET SESSION DEBUG FUNCTION and the appendix on "C/C++ Command-line Debugging for UDFs" in SQL External Routine Programming, B035-1147.
The D option only applies only to C and C++ code, not to Java UDFs.
You should not use this option when installing debugged UDFs on production system because it increases the size of the UDF library.
F
Function object. The string that follows is the entry point name of the C or C++ external function object.
F!function_entry_point_name
C
Client. The source or object code for the external function is stored on the client.
S
Server. The source or object code for the external function is stored on the server.

Path Specification

Following is a list of the path specifications for the external function. The options may be repeated as many times as needed with the exception of the package option. You can specify the following file types as external string literals.

I
Include file (.h).
I!name_on_server!include_name
L
Library name for a nonstandard library files needed by the UDF.
L!library_name
O
Object file.
O!name_on_server!object_name
P
Package name. You cannot use the package option with any other options except F, the C function name option.
P!package_name
S
Source file.
S!name_on_server!source_name
NS
No source file. Source files and include files are not stored in the function table. This option only affects how source code is processed in the creation of a new function and applies to all source code specified in the external string literal.
NS!source_file!include_file
delimiter
Specify a delimiter character, such as !. You must use the same delimiter throughout the string specification.
name_on_server
Name the file on the server. Include files must have the same name specified in the include statement in the C source, without the extension.
file_pathname
Location (path) and name of the source, include file, object, or library. Because packages and libraries must be preinstalled, you must use the server option (S). Path specifications can use forward slashes (/) or backward slashes (\) regardless of whether the function is being created on a Unix or Windows platform.

Java Table Function Variables

The following variables apply to Java functions only.

JAR_ID
The registered name of the JAR file associated with this function.
java_class_name
The name of the Java class contained within the JAR that contains the Java method to be executed.
method_name
The name of the method executed when the UDF is executed.
See SQL Fundamentals, B035-1141 for the rules for naming database objects.
primitive
A primitive parameter class as one of the following:
  • byte
  • double
  • int
  • long
  • short
object
An object parameter class definition in the format:
java.pkg.class