在没有参数的情况下运行过程时出错:PLS-00306:调用中的参数数量或类型错误
本文关键字:参数 调用 数数 错误 类型 PLS-00306 出错 情况下 运行 过程 | 更新日期: 2023-09-27 18:36:20
>我在oracle过程中有这个更新语句
规范:
PROCEDURE Update_G;
身体:
PROCEDURE Update_G
AS
BEGIN
UPDATE group SET check_flag = 0 WHERE check_flag = 1;
UPDATE employee SET check_flag = 0 WHERE check_flag = 1;
END Update_G;
当我从 .net 调用其抛出错误时,此过程:
PLS-00306: wrong number or types of arguments in call to Update_G
它从oracle运行,但从.net运行其抛出错误。如果添加了输入参数,它可以工作,但我不需要任何参数。
点网代码:
Database db = GetOracleDbInstance();
object[] spParams = new object[0];
string spName = "Update_G";
db.ExecuteDataSet(spName, spParams);
这里没有参数,我也试过这个:
Database db = GetOracleDbInstance();
db.ExecuteNonQuery(CommandType.StoredProcedure, "Update_G");
过程所需的参数,如果没有参数则传递 Null
Database db = GetOracleDbInstance();
string spName = "Update_G";
db.ExecuteDataSet(spName, Null); //or db.ExecuteDataSet(spName); try both
答案参考