Используя NHibernate 3.1 с базами данных SQL Server и Oracle, нам нужно хранить текстовую строку длиной более 4000 символов. Текст на самом деле XML, но это не важно - мы просто хотим рассматривать его как необработанный текст. С SQL Server это легко. Мы объявляем столбец как NVARCHAR (MAX) и отображаем его таким образом:
<property name="MyLongTextValue" length="100000"/>
Использование свойства length указывает NHibernate ожидать, что строка может быть длиннее 4000 символов.
Насколько я понимаю, я не могу понять, как заставить это работать в Oracle 11g. Я попытался объявить столбец как XMLTYPE и LONG, но безуспешно. В первом случае мы получаем ORA-01461: может связывать значение LONG только для вставки в столбец LONG при попытке вставить строку. Во втором случае данные вставляются правильно, но при запросе возвращаются в виде пустой строки.
Кто-нибудь знает, как заставить это работать? Ответ должен быть совместим как с SQL Server, так и с Oracle. Я бы предпочел не писать собственные расширения, такие как пользовательские типы и подклассы драйверов. Благодаря.