私は Oracle の世界では初めてで、パラメーター化されたクエリを使用して .NET (C#) から挿入しようとしています。
私のテーブルは次のとおりです。
CREATE TABLE layer_mapping
(
lm_id NUMBER NOT NULL,
lm_layer_name VARCHAR2(50) NOT NULL,
lm_layer_file LONG RAW NOT NULL,
CONSTRAINT lm_pk PRIMARY KEY(lm_id)
)
"layer_mapping 値に挿入 (:lm_id,:lm_layer_name,:lm_layer_file);"
Visual Studio では、上記のクエリが実行時に生成されており、BindByName = true; があります。
エラーが疑われる「lm_layer_file」値は、ファイルからクラスに供給されており、バイト配列です。以下はクラスの例です。
public class LayerMapping()
{
private Int32 _id;
private String _name;
private Byte[] _file;
}
奇妙なことに、PostgreSQL ではすべてがエラーなしで正常に行われます。
長い生の値を生成するために間違った方法を使用していますか?
ああ、私が受け取っているエラーは ORA-0991 (無効な文字) です。
何かご意見は?