DB2 ユニバーサル・データベース以前の DB2 CLI バージョンでは、 SQLProcedures() と SQLProcedureColumns() が呼び出され、ストアード・プロシージャーとその属性に関する情報を検索する前に、サーバーで DB2CLI.PROCEDURES 表を作成し、データを入れておかなければなりません。
DB2 ユニバーサル・データベースはストアード・プロシージャーの情報が入った SYSCAT.PROCEDURES および SYSCAT.PROCPARAMS カタログを使用するようになったので、 DB2CLI.PROCEDURES 表は不要になりました。
バージョン 5 以前の DB2 をお使いの場合は、コマンド行プロセッサー入力ファイル STORPROC.DDL を使って DB2CLI.PROCEDURES 表を作成できます。次いで、サンプルの STORPROC.XMP ファイルを修正して、この PROCEDURE 表に行を挿入することができます。これら 2 つのファイルは両方とも、 sqllib ディレクトリーの misc サブディレクトリー内にあります。入力ファイルを使用して表を作成するには、コマンド行から次のコマンドを実行します。
db2 -f STORPROC.DDL -z STORPROC.LOG -t
情報が正しく表の中に入力されたことを確認し、表を最新のものに更新していくのは、データベース管理担当者の役割です。最初は、すべてのユーザーにこの表に対する SELECT (選択) 特権があり、 DBADM 権限を持つユーザーだけに、この表の中の行について INSERT (挿入)、 DELETE (削除) または UPDATE (更新) を行うことができます。それ以外の表については、DBADM 権限を持つユーザーが他のユーザーに各特権を付与することができます。
DB2CLI.PROCEDURES 表の凡例
表 214. DB2CLI スキーマでの PROCEDURES 表の列
列名 | データ・タイプ | ヌル可 | キー | 説明 |
---|---|---|---|---|
PROCSCHEMA | VARCHAR(18) | いいえ | PK | プロシージャーのスキーマ名。 |
PROCNAME | VARCHAR(18) | いいえ | PK | SQL CALL ステートメントで指定されるストアード・プロシージャーの名前。 |
DEFINER | VARCHAR(8) | いいえ | いいえ | ストアード・プロシージャーの定義者。 (表にこの行を挿入したデータベース管理者。) |
PKGSCHEMA | VARCHAR(18) | いいえ | いいえ | ストアード・プロシージャーが実行されるときに使用されるパッケージのスキーマ名。 |
PKGNAME | VARCHAR(18) | いいえ | いいえ | ストアード・プロシージャーが実行されるときにロードされるパッケージの名前。 |
PROC_LOCATION | VARCHAR(254) | いいえ | いいえ | プロシージャーの外部 (完全パス) 名。 |
PARM_STYLE | CHAR(1) | いいえ | いいえ | ストアード・プロシージャーにパラメーターを渡すのに使用する規則。
|
LANGUAGE | CHAR(8) | いいえ | いいえ | ストアード・プロシージャーを作成するのに使用するプログラミング言語。 DB2 共通サーバー用に可能な値としては、COBOL、 C、REXX、および FORTRAN があります。 (値 C は、 C プログラムと C++ プログラムの両方を指して用いられます。) 他の製品では PL/I と BASIC のような他の言語が使用できる場合があります。 |
STAYRESIDENT | CHAR(1) | いいえ | いいえ | ストアード・プロシージャーが終了するときにプロシージャーのロード・モジュールがメモリーから削除されるかどうかを判別します。
|
RUNOPTS | VARCHAR(254) | いいえ | いいえ | 予約済み (空ストリング)。 |
PARM_LIST | VARCHAR(3000) | いいえ | いいえ | ストアード・プロシージャーのパラメーター・リスト。このパラメーター・リストの形式については、この表の次にある構文図を参照してください。 |
FENCED | CHAR(1) | いいえ | いいえ | プロシージャーが「分離された状態で」実行するかどうかを示します。
|
REMARKS | VARCHAR(254) | はい | いいえ | ストアード・プロシージャーの説明。 |
RESULT_SETS | SMALLINT | いいえ | いいえ | 戻すことができる結果セットの数。 |
パラメーター・リスト列 (PARM_LIST) の入力形式は、図 19 に定義されています。この列の内容に構文エラーがある場合、SQLProcedureColumns() への呼び出しはエラーとなります。
図 19. PARMLIST ストリング構文. この PARMLIST 構文図は、 DB2 (MVS/ESA 版) と DB2 DB2 共通サーバー版の両方でサポートされているデータ・タイプを結合したものです。
.-,------------------------------------------------------------------------. V | >>----+--------------------------------------------------------------------+--+-> | .-IN----. | '-parm-name--| data-type |---+------------------------+---+-------+--' '-FOR--+-SBCS--+---DATA--' +-OUT---+ +-MIXED-+ '-INOUT-' '-BIT---' >-------------------------------------------------------------->< data-type |---+-INT-------------------------------------------------+-----| +-INTEGER---------------------------------------------+ +-SMALLINT--------------------------------------------+ +-FLOAT--+------------------+-------------------------+ | '-(--integer *--)--' | +-REAL------------------------------------------------+ +-DOUBLE----------------------------------------------+ +-DOUBLE PRECISION------------------------------------+ +--+-DEC-----+---+----------------------------------+-+ | +-DECIMAL-+ '-(--integer--+-------------+---)--' | | +-NUM-----+ '-,--integer--' | | '-NUMERIC-' | +--+-CHAR------+---+----------------+-----------------+ | '-CHARACTER-' '-(--integer--)--' | +-VARCHAR--(--integer--)------------------------------+ +-LONG VARCHAR----------------------------------------+ +-GRAPHIC--+----------------+-------------------------+ | '-(--integer--)--' | +-VARGRAPHIC--(--integer--)---------------------------+ +-LONG VARGRAPHIC-------------------------------------+ +--+-BLOB---+---(--integer--+-K-+---)-----------------+ | +-CLOB---+ +-M-+ | | '-DBCLOB-' '-G-' | +-DATE------------------------------------------------+ +-TIME------------------------------------------------+ '-TIMESTAMP-------------------------------------------'
|