0

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 がオラクルで機能しないのはなぜですか?

4

2 に答える 2

1

OracleType 列挙値 Blob で OracleParameter を使用する必要があります。詳細については、こちらを参照してください...

http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracletype.aspx

于 2012-10-25T11:45:15.350 に答える
0

これはおそらく、OracleDbType の異なる Oracle 推論に関係していますSystem.Data.DbType。対応するSystem.Data.DbType.BinaryOracleDbType=Raw があります。OracleDbType=Blob を取得するために使用する必要がありますSystem.Data.DbType.Object。詳細については、http://docs.oracle.com/html/B14164_01/featOraCommand.htm の表 3-3 を参照してください

于 2012-10-25T11:50:16.427 に答える