从Oledb Connection调用Oracle函数

本文关键字:Oracle 函数 调用 Connection Oledb | 更新日期: 2023-09-27 18:21:25

嗨,我正试图使用以下代码调用Oracle函数,但它显示了类似的错误

"ORA-01403:未找到数据''nORA-06512:在''"TEST.VOD_BULK_TRANS1''"处,第47行''nRA-06512:在第1行"

该函数接受3个输入参数并返回一个整数值。

using (OleDbConnection conn= new OleDbConnection(connectionString))
{
    conn.Open();
    //set the command text (stored procedure name or SQL statement)
    command.CommandText = "VOD_BULK_TRANS1";
    command.Parameters.Add(new OleDbParameter("retVal", OleDbType.VarChar, 11, ParameterDirection.ReturnValue, true, 0, 0, "retVal", DataRowVersion.Current,null));
    command.Parameters.Add( OleDbParameter("@t_list", videosListWithCommaSeparated);
    command.Parameters.Add( OleDbParameter("@option1", 3);
    command.Parameters.Add( OleDbParameter("@id1", groupId);
    command.ExecuteNonQuery();
}

请告诉我如何使用Oledb Connecton调用函数或存储过程。

从Oledb Connection调用Oracle函数

使用ado.net执行Stored Procedure时,必须将IDbCommand对象的CommandType属性设置为CommandType.StoredProcedure。样品:

using (OleDbConnection conn= new OleDbConnection(connectionString))
{
    conn.Open();
    // set the commend type here    
    command.CommandType = CommandType.StoredProcedure;
    //set the command text (stored procedure name or SQL statement)
    command.CommandText = "VOD_BULK_TRANS1";
    command.Parameters.Add(new OleDbParameter("retVal", OleDbType.VarChar, 11, ParameterDirection.ReturnValue, true, 0, 0, "retVal", DataRowVersion.Current,null));
    command.Parameters.Add( OleDbParameter("@t_list", videosListWithCommaSeparated);
    command.Parameters.Add( OleDbParameter("@option1", 3);
    command.Parameters.Add( OleDbParameter("@id1", groupId);
    command.ExecuteNonQuery();
}