Syntax
$EXTERNAL( 'library', 'routine', input_data<column-spec
| expression | constant >[,output_datatype,length])
$EXTERNAL()
Required.
library
Required. The shared-library containing the routines to executed.
routine
Required. The routine in the share-library that is to be
executed.
The routine must have the following function prototype:
int32 routine(char *environment_file, void
*input_data, int32 input_datatype,
int32 input_length, char *input_options, void *output_data,
int32 output_datatype, int32 output_length);
Environment_file is provided so that a routine
can open its own instance and cursor if needed.
Input_data may be a column, expression, or
literal.
Input_options may be a column, expression,
or literal, and must always result in a character string.
Input_datatype and input_length are determined
by OmniAccess from the datatype and length of input_data.
Output_datatype and output_length are required
except when using in the environment file as the definition
of a pseudo-column.
Routine must be written so that it always
succeeds.
When used in a SQL statement, the $EXTERNAL
function returns a value of type output_datatype and output_length.
input_data
Required. input_data can be a column, expression, or literal.
If this does not reference a column, then the routine will
be called only once and the data will be cached when possible.
Only if the input_data contains a column will the routine
be called on a per-row basis. This is done to allow the greater
use of Omnidex optimization on literals and constants.
output_datatype
Optional.
length
Optional.
top
Example
top
|