C#调用存储过程老是报错

[复制链接]
查看11 | 回复4 | 2009-7-28 22:35:31 | 显示全部楼层 |阅读模式
老大! 你这里只指定了一个参数好不好!create or replace procedure PR_BUDGETTREE
(
unitLevel in varchar2
)
is调用的时候添加那么多参数干嘛?
回复

使用道具 举报

千问 | 2009-7-28 22:35:31 | 显示全部楼层
错误已经很明显了
回复

使用道具 举报

千问 | 2009-7-28 22:35:31 | 显示全部楼层
请尝试调用cmd.ExecuteNonQuery();方法完毕后,再ArrayList outresult = new ArrayList();for ( int i = 0; i < cmd.Parameters.Count; i ++ ){
outresult.Add(cmd.Parameters.Value);}如无意外,在outresult中可以取到返回值。另外,过程这种方式是正确的:create or replace procedure PR_BUDGETTREE
(
unitLevel in varchar2,
unitID out varchar2,
unitName out varchar2,
)
回复

使用道具 举报

千问 | 2009-7-28 22:35:31 | 显示全部楼层
unitID和unitName作为返回变量,应该写成@unitID varchar(20) OUTPUT, @unitName varchar(20) OUTPUT吧,而SQL查询语句里应该写: SELECT @unitName = a.fdsunitname, @unitID = a.fdsunitid
from tbbudgetunit as a
WHERE a.fdiunitlevel = @unitLevel;
回复

使用道具 举报

千问 | 2009-7-28 22:35:31 | 显示全部楼层
1楼正解,我就不补充了~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行