Open棟梁 wiki

戻る

目次

参考

パラメタライズド・クエリの初歩

方法

パラメタライズド・クエリのバインド変数へのバインド方法は?

名前バインドにのみ対応しています。このため、どのデータプロバイダであっても、順番バインドをサポートしません。

パラメタライズド・クエリのバインド変数への属性指定方法は?

ストアド プロシジャ、無名PL/SQLブロックの実行や、戻り値の取得などは可能か?

ストアド プロシジャでも動的パラメタライズド・クエリ機能を使用できます。

ストアド プロシジャの実行方法

ストアド プロシジャは、利用ガイドに書かれている方法で実行できます。

CmnDao経由でのストアド実行

現行のCmnDaoでは、

SetSqlByCommand("sp_help", CommandType.StoredProcedure);

のようにStoredProcedure?パラメタが指定できないのでストアド実行はできないと思います。

しかし、現行のCmnDaoも、以下まで対応可能済みなので、
ちょっとカスタマイズすればストアド実行できるようになると思います。

対応されたモジュールをpullrequestして貰えると、とても助かります。

デッドロック、ロックタイムアウト、「ユニークキーの重複」などの例外をリトライしたい。

B層ベースクラス2の例外処理をカスタマイズして、 リトライ対象例外を業務例外に振り替え、P層に正常系の戻り値が戻るようにします。

SetUserParameter()メソッドの利用ポリシーをどのように考えるべきか?

D層自動生成ツールで楽観排他を、どのように実装するのか?

性能

コマンド タイムアウト値を設定するにはどうすれば良いか?

共通のコマンド タイムアウト値をconfigファイルに設定できます。

ODP.NET、HiRDBの配列バインドをサポートしているか?

SQLで暗黙の型変換が発生し、検索処理性能が大幅に劣化する。

動的パラメタライズド・クエリを記述するXMLファイルのサイズなどにより性能が劣化しないか?

エラー

動的パラメタライズド・クエリで、[<]、[>]などの文字が含まれると適切に実行されない。

XML内部で使用不可能な文字列は、HTMLエンコーディングが必要になります。

これらの文字列が含まれる場合は、下記の現象が発生します。

動的パラメタライズド・クエリでXMLが編集されずに、そのまま実行される。

として実行されるため、この現象は、不正なフォーマットのXMLを投げている事に起因します。

して下さい。

自動生成Daoの Update処理で「ORA-00972 "識別子が長すぎます"」が発生する。

検索条件のIN句(副問合せ)を動的化したいがエラーとなる。

検索条件のIN句(副問合せ)を動的化する場合、動的パラメタライズド・クエリのIFタグ ではなく、タグのネストが可能なSUBタグを使用頂けます。

Daoの使い分け

更新系処理

自動生成Dao

単一テーブルからのSELECT

自動生成Dao

複数テーブルなど複雑なSELECT

共通Dao(CmnDao) 

大量データ処理(バッチ更新処理)

大量データ処理(バッチ更新処理)で

性能が出ません。

従って、大量データ処理(バッチ更新処理)の場合は、

を使用して下さい。

制限事項

動的パラメタライズド・クエリのパラメタ名

動的パラメタライズド・クエリのパラメタで、XMLタグの編集処理に使用されるパラメタのパラメタ名は、
同じ値を使用するパラメタでも、別々に(1つのXMLタグ毎、ユニークに)定義する必要があります。

サポート

Like句を使用した曖昧検索をサポートしているか?

LINQ to SQLやLINQ to Oracle、LINQ to Entities(ADO.NET Entity Framework)をサポートしているか?

任意のDLL(Assembly)からの埋込SQLのロードをサポートしているか?


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS