我正在尝试让我的存储过程在Oracle中运行,并且遇到了下溢错误。我试图从六个不同的表中删除相关信息。我可以在SQL Developer中单独运行delete语句而不会出错。当我尝试从我的C#代码隐藏中运行该过程时,我得到一个带有下溢错误的异常。有什么建议吗?
以下是代码:
Procedure DeleteProf(i_prof_sk IN NUMBER) IS
BEGIN
delete from nt_fac where nt_per_sk in (select nt_per_sk from nt_per
where nt_prof_sk=i_prof_sk);
delete from nt_per_fact where nt_per_sk in (select nt_per_sk from nt_per
where nt_prof_sk=i_prof_sk);
delete from nt_per where nt_per_sk in (select nt_per_sk from nt_per
where nt_prof_sk=i_prof_sk);
delete from nt_prof_case where nt_prof_sk=i_prof_sk;
delete from nt_prof_fact where nt_prof_sk=i_prof_sk;
delete from nt_prof where nt_prof_sk=i_prof_sk;
END;
答案 0 :(得分:1)
假设您可以从SQL Developer成功运行存储过程,我的猜测是您为输入参数i_prof_sk传递了一个不正确的值,或许类似于您将C#浮点值传递给过程。如果没有意义,请发布调用该过程的C#代码,包括参数设置。这里的一些C#锐利可能会告诉你什么是不对的。我还添加了C#标签,可能引起其中一个人的注意。