Пользовательские функции и пользовательская схема DB2 - PullRequest
0 голосов
/ 09 января 2012

Я создаю пользовательскую схему в своей базе данных DB2 с помощью следующей команды:

db2 create schema MYSCHEMA authorization db2user (пользователь ОС db2user)

Затем через мое приложение я устанавливаю некоторые функции в этой схеме, они, кажется, установлены правильно:

db2 => select substr(funcschema,1,12)as funcs, substr(funcname,1,30) as func from    syscat.functions where funcschema='MYSCHEMA' order by 1,2

FUNCS         FUNC
------------  ------------------------------
MYSCHEMA      NUMCAST
MYSCHEMA      NUMSORT

2 record(s) selected.

Но запросы, которые должны использовать эти функции, не выполняются.

SQL0440N No authorized routine named "NUMCAST" of type "FUNCTION" having compatible arguments was found.

Я использую следующий API для подключения. Имя пользовательской схемы указывается в переменной connection_string

retcode = SQLDriverConnect(pDbConnectionHandle->g_hDbc, NULL, connection_string, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);

То же приложение создает таблицу в схеме, но функция NUMCAST, установленная в схеме, не распознается. Не могли бы вы сказать, чего здесь не хватает?

1 Ответ

1 голос
/ 10 января 2012

вам нужно установить специальный регистр CURRENT PATH для включения вашей схемы.введите команду db2, например:

SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","myschema"

http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0005877.html

...