Oracle 10g に対して Fluent NHibernate 1.2.0.712 を使用して clob フィールドをマップしようとしています。デフォルトで利用可能な System.Data プロバイダーを使用しており、以前のクライアントの問題のために ODP.Net への参照を追加しないようにしようとしていました。
ただし、マッピングされた clob プロパティを持つエンティティを挿入しようとすると、次のエラーが発生します。
ORA-01461: LONG列に挿入する場合のみLONG値をバインドできます
以下の規則を使用し、適切なプロパティを [StringLength(4000)] で装飾することで、これを修正しようとしました。
public class StringLengthConvention : AttributePropertyConvention<StringLengthAttribute>
{
protected override void Apply(StringLengthAttribute attribute, IPropertyInstance instance)
{
instance.Length(attribute.MaximumLength);
}
}
これはうまくいきませんでした。
次に、「TEXT」、「CLOB」、「clob」の値を使用して以下を試しました。どちらも機能しませんでした:
public class plaparteMappingOverride : IAutoMappingOverride<plaparte>
{
public void Override(AutoMapping<plaparte> mapping)
{
Map(x => x.disposiciones).CustomSqlTypeIs("TEXT");
}
}
ODP をプロバイダーとして追加する以外に、この修正についてさらに提案がある人はいますか?