Hybrid Data Pipeline supports DB2, Oracle, PostgreSQL, and SQL Server stored functions for OData Version 4 services as described here.
Functions that are unbound (static operations)
Function imports
Functions that return primitive types
Function invocation with OData system query options $filter
Note that the following aspects of OData Version 4 functions are NOT supported.
Functions that return complex types and entities
Functions that are bound to entities
Built-in functions
Functions with OUT/INOUT parameters
Overloaded functions
Function invocation as part of $select
Function invocation as part of $orderby
Function invocation as part of parameter value
Parameter aliases are not supported. Hence, invoking functions with function parameters as URL query parameters is not supported.
The following additional limitations apply to PostgreSQL.
The BYTEA data type is not supported.
The BIT data type is mapped as BINARY. To work around this issue, you can create a function parameter or return type as BIT.
Synonyms are not supported. To work around this issue, the functions of other schema can be accessed with the following steps.
1. Create a user (for example, USER_A) and functions in one schema (for example, SCHEMA_A) .
2. Create another user (for example, USER_B) and set a search path for this user to access functions for SCHEMA_A:
alter user USER_B set search_path to SCHEMA_A;
Now USER_B can access the functions created for SCHEMA_A without using the fully qualified name (schemaName.functionName), while USER_A remains the owner of those functions.
Note: You can invoke stored functions using an OData service either independently or as part of another operation, such as a filter operation.