在没有参数的情况下运行过程时出错: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");

在没有参数的情况下运行过程时出错:PLS-00306:调用中的参数数量或类型错误


过程所需的参数,如果没有参数则传递 Null

Database db = GetOracleDbInstance(); 
string spName = "Update_G"; 
db.ExecuteDataSet(spName, Null); //or db.ExecuteDataSet(spName); try both


答案参考