Reputation: 117
I have the same user defined function in Db2 defined in several schemas. How can I retrieve the schema used for the current invocation within the UDF ?
CURRENT_SCHEMA
special register does not work in my case, as it only works after SET CURRENT SCHEMA '...'
(which is not used).
Are there any other possibilities ?
Example UDFs:
--#SET TERMINATOR #
CREATE FUNCTION SCHEMA1.TEST_UDF ( )
RETURNS VARCHAR(100) LANGUAGE SQL
BEGIN
RETURN CURRENT_SCHEMA;
END#
CREATE FUNCTION SCHEMA2.TEST_UDF ( )
RETURNS VARCHAR(100) LANGUAGE SQL
BEGIN
RETURN CURRENT_SCHEMA;
END#
--#SET TERMINATOR ;
Invocation:
SELECT SCHEMA1.TEST_UDF() FROM SYSIBM.SYSDUMMY1;
I'd like to see 'SCHEMA1' as output for this invocation.
Upvotes: 0
Views: 173
Reputation: 12339
Use the ROUTINE_SCHEMA global variable.
--#SET TERMINATOR #
CREATE OR REPLACE FUNCTION SCHEMA1.TEST_UDF ( )
RETURNS VARCHAR(100)
BEGIN
RETURN ROUTINE_SCHEMA;
END#
Upvotes: 1