识别Db2中UDF内部的架构

时间:2018-12-12 14:49:58

标签: db2 user-defined-functions

我在几个模式中定义的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”作为此调用的输出。

1 个答案:

答案 0 :(得分:1)

使用ROUTINE_SCHEMA全局变量。

--#SET TERMINATOR #
CREATE OR REPLACE FUNCTION SCHEMA1.TEST_UDF ( )
   RETURNS VARCHAR(100) 
BEGIN
   RETURN ROUTINE_SCHEMA;
END#