2
這裏是我的問題:我有Oracle數據庫10g,我使用nhibernete 2.1進行映射。現在,當我在Oracle中創建一個表我的表的hbm.xml文件中是這樣使用nhibernate的Oracle NVARCHAR2(Max)2.1
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="AssembleName" namespace="NamesapceName" >
<class name="ClassName" table="TableName" schema="ScheamName"
dynamic-update="true" dynamic-insert="true" select-before-update="true">
<id name="Id" column="id" type="integer" unsaved-value="0">
<generator class="native"></generator>
</id>
<property name="Name" column="name" type="StringClob" length="100000" not-null="true" />
</class>
,如果我給的屬性大於4000的長度可以此格式創建
create table TableName (
id NUMBER(10,0) not null,
name NCLOB not null,
primary key (id)
)
當我使用我自己的函數獲取表項時
我遇到Oracle.DataAccess.Client.OracleException:ORA-00932:不一致的數據類型:預計 - 得到NCLOB問題 但是當我設置屬性像
<property name="Name" column="name" type="string" length="2000" not-null="true" />
它採用該格式
create table TableName (
id NUMBER(10,0) not null,
name NVARCHAR(2000) not null,
primary key (id)
)
創建和我用於讀取數據的功能是工作的罰款。但我需要一個字符串長度大於4000且沒有Oracle.DataAccess.Client.OracleException的表:ORA-00932:不一致的數據類型:預計 - 得到NCLOB
在Oracle中,您無法定義超過4000個字節的(N)VARCHAR列。您必須使用CLOB或NCLOB才能獲得更大的值。請向我們展示訪問該列的「* own function *」的代碼。 – 2012-03-23 07:55:22