ASA SQL User's Guide
Using Procedures, Triggers, and Batches
Calling external libraries from procedures
The following SQL data types can be passed to an external library:
SQL data type | C type |
---|---|
CHAR | Character data, with a specified length |
VARCHAR | Character data, with a specified length |
LONG VARCHAR | Character data, with a specified length |
BINARY | Binary data, with a specified length |
LONG BINARY | Character data, with a specified length |
TINYINT | 1-byte integer |
[ UNSIGNED ] SMALLINT | [ Unsigned ] 2-byte integer |
[ UNSIGNED ] INT | [ Unsigned ] 4-byte integer |
[ UNSIGNED ] BIGINT | [ Unsigned ] 8-byte integer |
VARBINARY | Binary data, with a specified length |
REAL | Single precision floating point number |
DOUBLE | Double precision floating point number |
You cannot use date or time data types, and you cannot use exact numeric data types.
To provide values for INOUT or OUT parameters, use the set_value API function. To read IN and INOUT parameters, use the get_value API function.
You can pass NULL as a valid value for all arguments. Functions in external libraries can supply NULL as a return type for any data type.
The following table lists the supported return types, and how they map to the return type of the SQL function or procedure.
C data type | SQL data type |
---|---|
void | Used for external procedures. |
char * | function returning CHAR(). |
long | function returning INTEGER |
float | function returning FLOAT |
double | function returning DOUBLE. |
If a function in the external library returns NULL, and the SQL external function was declared to return CHAR(), then the return value of the SQL extended function is NULL.