Microsoft Enterprise Data Access ブロックに基づいて構築された独自の DataAccess ライブラリがあります。
バイナリファイルの内容を入力パラメータとして取り、それをDBに保存するストアドプロシージャがあります。
byte[] imageFileByteArray = this.GetByteArrayFromFile(imageFile);
this.dataAccess.AddCmdParameter("DOCIMAGE", System.Data.DbType.Binary, imageFileByteArray);
このコードは、SQL データベースを使用している場合は正常に動作しますが、Oracle に切り替えると、「パラメーターの型が間違っています」という例外が発生します。
Oracle db では、DOCIMAGE 列は BLOB フィールドとして宣言されています。
推論された Dbtype.Binary がオラクルで機能しないのはなぜですか?