我在几个模式中定义的Db2中具有相同的用户定义功能。如何在UDF中检索用于当前调用的模式?
CURRENT_SCHEMA
在我的情况下不起作用,因为它仅在SET CURRENT SCHEMA '...'
之后使用(未使用)。
还有其他可能性吗?
示例UDF:
--#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 ;
调用:
SELECT SCHEMA1.TEST_UDF() FROM SYSIBM.SYSDUMMY1;
我希望看到“ SCHEMA1”作为此调用的输出。
答案 0 :(得分:1)
使用ROUTINE_SCHEMA全局变量。
--#SET TERMINATOR #
CREATE OR REPLACE FUNCTION SCHEMA1.TEST_UDF ( )
RETURNS VARCHAR(100)
BEGIN
RETURN ROUTINE_SCHEMA;
END#