このセクションでは、ストアド プロシージャのスムーズな運用を保証ためのデータベース スキーマに関するいくつかの推奨事項について説明します。
ドライバによって共通の SQL タイプがレポートされない(ドライバによって java.sql.Type.OTHER = 1111 が返される)ストアド プロシージャ引数は、ドライバによって文字列が引数で求められているネイティブ タイプに変換できることを前提として、Type.VARCHAR (16) として扱われます。 たとえば、これは Oracle NVARCHAR2 の引数で機能します。 これが機能しない場合、ストアド プロシージャは呼び出されず、「無効な列タイプ」で終了するエラー メッセージが表示されます。
ストアド プロシージャの引数には可能な限り、基本的なタイプ(VARCHAR に関連する基本的なタイプなど)を使用し、他の引数タイプを単一のストアド プロシージャ、使用するベンダーとバージョンで検証してから、広範囲で使用することをお勧めします。
グループ対アカウントの関連付けを作成する場合、キーに選択するネイティブ タイプのアカウント/グループ テーブル列が選択されたメンバシップ テーブルで対応する列のタイプに一致することを確認します。 タイプが一致しない場合、メンバシップ情報が正常に取得されません。 できるだけ厳しい制約を設けることをお勧めします。 たとえば、グループ命名属性として選択した列がタイプ NVARCHAR2 で、対応する列がメンバシップ テーブル内でタイプ VARCHAR2 の場合、アカウントが属するグループを検索しても空の(または、名前にマルチバイト文字が使用されるグループが欠落している)リストが返されます。
パーセント(%)およびアンダースコア(_)記号は、スキーマ、テーブル、テーブル列およびストアド プロシージャ引数のようなデータベース オブジェクトを検索する場合に、ワイルドカードとして機能するので、使用しないことをお勧めします。 この記号が表示される場合、引用符で囲われますが、この点はベンダーおよびバージョンによって異なります。 たとえば、あるベンダーでは、一部リリースで正しく使用される引用符がレポートされません。 当社の製品がサポートされているベンダーでは、%/_ に関する既知の問題は存在しません。
重要: Connector Xpress および CA IAM CS では、引数を使用してストアド プロシージャからデータが読み取り/書き込みされます。 ただし、この引数ではバインド先のストアド プロシージャのコードが妥当であるかどうかを確認できません。 バインド先のストアド プロシージャのコードが妥当であるかどうかを確認することをお勧めします。
|
Copyright © 2014 CA.
All rights reserved.
|
|