gpt4 book ai didi

c# - PLS-00306 : wrong number or types of arguments error in C#

转载 作者:太空狗 更新时间:2023-10-29 23:15:02 25 4
gpt4 key购买 nike

我们在 C# 程序中使用 Oracle 存储过程,在我们添加“v_nameurn”变量之前它工作正常。

这是 Oracle 程序:

create or replace procedure stats_By_Date (
v_SDate IN varchar2,
v_EDate IN varchar2,
v_user IN number,
v_nameurn IN number,
p_cursor OUT SYS_REFCURSOR
) as
BEGIN
OPEN p_cursor FOR
select T1.Staff_No,
T3.Title,
T2.Verno,
To_char(T1.Response_dt, 'DD/MM/YYYY'),
T5.Response,
T6.Forenames||' '||T6.Surname
from TOU.Users_version_link T1,
TOU.Version T2,
TOU.name T3,
TOU.Admin_Access T4,
Tou.CV_Response T5,
corp.wforce_employee@remote_DWLive T6
where T1.Version_urn=T2.Urn
and T1.Name_urn= T3.urn
and T3.urn = T4.name_urn
and T1.Response_urn=T5.urn
and T1.staff_no=T6.Staff_Number
and Trunc(T1.Response_dt) >= To_date(v_Sdate, 'DD/MM/YYYY')
and Trunc(T1.Response_dt) <= To_date(v_EDate, 'DD/MM/YYYY')
and T4.Staff_No = v_user
and T3.urn = v_nameurn;
End;

这是 C# 代码:

this.ConnectToDb();
var cmd = new OracleCommand
{
Connection = cn,
CommandText = "TOU.Stats_By_Date",
CommandType = CommandType.StoredProcedure
};
var id = HttpContext.Current.User.Identity.Name.Split('\\')[1].ToString();
cmd.Parameters.Add("v_SDate", OracleDbType.Varchar2).Value =
startdate.ToString("dd-MM-yyyy");
cmd.Parameters.Add("v_EDate", OracleDbType.Varchar2).Value =
enddate.ToString("dd-MM-yyyy");
cmd.Parameters.Add("v_user", OracleDbType.Decimal).Value = int.Parse(id);
cmd.Parameters.Add("v_nameurn", OracleDbType.Decimal).Value = 3;
var rc = cmd.Parameters.Add("p_cursor", OracleDbType.RefCursor);
rc.Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
this.DisconnectFromDb();

请问有什么问题可以建议吗?两段代码中总共有 5 个变量(4 个输入,1 个输出),这很好,而且所有数据类型似乎都匹配。我还尝试了实际 v_nameurn 变量的不同变体,所以我尝试了 3,“3”,并预先将其定义为 Int 变量。

最佳答案

Decimal 是 Oracle NUMBER 类型.. 所以改变你的数据类型为 v_user 和 'v_nameurn'

cmd.Parameters.Add("v_user", OracleDbType.Decimal).Value = int.Parse(id);
cmd.Parameters.Add("v_nameurn", OracleDbType.Decimal).Value = 3;

OracleDbType Enumeration

关于c# - PLS-00306 : wrong number or types of arguments error in C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22012941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com