2012-01-09 31 views
0

私は、次のコマンドを使用して、私のDB2データベースにカスタムスキーマを作成します。DB2ユーザー定義関数およびカスタムスキーマ

db2 create schema MYSCHEMA authorization db2user を(DB2USERは、OSのユーザーである)

はその後、私のアプリケーションを介して私は、いくつかの機能をインストールします

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. 

しかし、これらの機能を使用するために持っているクエリは失敗します。このスキーマは、彼らが適切にインストールされているようです。私は接続するには、以下のAPIを使用し

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

。カスタムスキーマ名がconnection_string変数

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

に指定されている同じアプリケーションは、スキーマ内のテーブルを作成しますが、スキーマにインストールNUMCAST機能が認識されません。ここで何が欠けているか教えてください。

答えて

1

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

+0

、Infactはこれは次のように "は、connection_string" 指定する必要があり:CURRENTFUNCTIONPATH = "SYSIBM"、 "SYSFUN"、SANISH_SCHEMA。 – Sanish

関連する問題