CommandBuilderは、INSERT、UPDATE、およびDELETEコマンドを作成する必要をなくすのに役立つ非常に便利なクラスです。CommandTypeがTextの場合、非常に簡単に実行できます。ただし、CommandTypeがStoredProcedureであり、pocedureがSYS_REFCUSORを返す場合、SQLの生成に失敗します。sotredプロシージャを使用して、Oracleデータベースからデータを取得しようとしています。選択は簡単です。(出力パラメーター(この場合はカーソルが返されます)をIDataReaderに割り当てます)。CommandBuildがカーソルを返すストアドプロシージャを使用して更新SQLを生成することはまだ可能ですか?または、これらすべてのSQLを手動で作成する必要がありますか。(ストアドプロシージャを使用して結果を返すことができるため、MS SQL Serverが恋しいです。)
質問する
1052 次
1 に答える
0
長い間絶望的な検索を行った後、最も信頼できる情報源であるORACLEから私の質問に対する答えを見つけました。
ODP.NETのドキュメントに記載されている内容は次のとおりです。
REFCURSORタイプは更新できません。ただし、DataSetに取得されたデータは更新できます。したがって、OracleDataAdapterクラスでは、REFCURSORデータの更新をデータベースにフラッシュするためのカスタムSQLステートメントが必要です。 OracleCommandBuilderオブジェクトを使用して、REFCURSOR更新用のSQL文を生成することはできません。
最後の文は私の質問に対する正しい答えだと思います。これが誰かを助けることを願っています。
于 2012-04-11T07:47:45.290 に答える