出现的错误是:如果字符长度大于27k,会出现“ORA-01460: 转换请求无法实施或不合理”的错误提示。我要实现的功能是增加一条新闻内容,content字段是nclob类型。
我写了一个存储过程News_Update
有关的语句是:
p_content in nClob,
UPDATE NewsContent SET content = p_content WHERE newsid = p_newsid;c#代码:
OracleParameter[] parameters ={
OracleHelper.MakeInParam("p_newsid",OracleType.Number,0,model.NewsID),
...
OracleHelper.MakeInParam("p_content",OracleType.NClob,0,model.Content),
...
};
OracleHelper.RunProc("News_Update", parameters);
第一次使用oracle 数据库,请教一下!谢谢!
我写了一个存储过程News_Update
有关的语句是:
p_content in nClob,
UPDATE NewsContent SET content = p_content WHERE newsid = p_newsid;c#代码:
OracleParameter[] parameters ={
OracleHelper.MakeInParam("p_newsid",OracleType.Number,0,model.NewsID),
...
OracleHelper.MakeInParam("p_content",OracleType.NClob,0,model.Content),
...
};
OracleHelper.RunProc("News_Update", parameters);
第一次使用oracle 数据库,请教一下!谢谢!
你用全英文的字符串尝试下呢?
declare p_contentclob clob;
amount number;
begin
amount:=length(p_content);
select content into p_contentclob from newscontent where newsid=p_newsid for update;
dbms_lob.write(p_contentclob,amount,1,p_content);
commit;
end;这里的p_content在存储过程里是什么类型的,我用的是p_content in NVARCHAR2。看的例子是直接字符串写进来的。