Определить схему внутри UDF в Db2 - PullRequest
0 голосов
/ 12 декабря 2018

У меня одна и та же пользовательская функция в 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 голосов
/ 12 декабря 2018

Используйте глобальную переменную ROUTINE_SCHEMA .

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