testReader[0], testReader[1]
);
}
// 关闭Reader.
testReader.Close();
}
///
/// 测试执行存储过程.
///
///
private void CallProcedure(OracleConnection conn)
{
// 创建一个 Command.
OracleCommand testCommand = conn.CreateCommand();
// 定义需要执行的SQL语句.
testCommand.CommandText = "HelloWorld2";
// 定义好,本次执行的类型,是存储过程.
testCommand.CommandType = CommandType.StoredProcedure;
// 定义要查询的参数.
// 第一个参数,是输入的.
testCommand.Parameters.Add(new OracleParameter("p_user_name", "HeiHei"));
// 第2个参数,是输出的.
OracleParameter para2 = new OracleParameter("p_out_val", OracleType.VarChar, 10);
para2.Direction = ParameterDirection.Output;
testCommand.Parameters.Add(para2);
// 第3个参数,是既输入又输出的.
OracleParameter para3 = new OracleParameter("p_inout_val", OracleType.VarChar, 20);
para3.Direction = ParameterDirection.InputOutput;
para3.Value = "HAHA";
testCommand.Parameters.Add(para3);
// ExecuteNonQuery 方法,表明本次操作,不是一个查询的操作。将没有结果集合返回.
// 返回的数据,将是 被影响的记录数.
int insertRowCount = testCommand.ExecuteNonQuery();
// 存储过程执行完毕后,取得 output 出来的数据.
String pa2 = testCommand.Parameters["p_out_val"].Value.ToString();
String pa3 = testCommand.Parameters["p_inout_val"].Value.ToString();
Console.WriteLine("调用 {0} 存储过程之后, p_out_val={1}; p_inout_val={2}", testCommand.CommandText, pa2, pa3);
}
}
}