存储过程部分:
create or replace package body PKG_AGE is
procedure AGE(c_result out varchar2) as
nsql varchar2(4000);
isExist integer;
begin
--------------------清空表数据--------------
c_result:='执行成功xx';
EXCEPTION
WHEN others THEN
begin
c_result:='错误:'||sqlerrm;
--Rollback;
dbms_output.put_line(sqlerrm);
return;
end;
end AGE;
end PKG_AGE;
代码部分:
OracleParameter[] paramlst = new OracleParameter[]
{
new OracleParameter("c_result", OracleType.VarChar, 4000)
};
paramlst[0].Direction = ParameterDirection.Output;
dt = PublicClass.GetPrcDataSet("PKG_AGE.AGE", paramlst);
logcontent = paramlst[0].Value.ToString();
输出的内容:
记录消息:
logcontent的内容是:'执行成',不是'执行成功xx';
首先检查一下你数据库里面这个字段的长度对不对,是不是插入的时候已经被截断了
c_result 是一个输出参数,赋值 c_result:='执行成功xx'; 问题里面已经贴了存储过程 代码里面给的是4000 ,完全够那几个字了。可是就是被截取。
存储过程是否重新编译
请参照一下: