小弟刚学oracle,遇到一个问题这是在oracle 9i release 1 中创建的一个过程
create or replace procedure count_num(out_count out number)
as
begin
select count(*) into out_count from wygldba.employee;
end count_num;在asp.net中调用
OracleConnection cn = new OracleConnection( strConn );
try
{
cn.Open(); OracleCommand cmd = cn.CreateCommand(); cmd.CommandText = "COUNT_NUM";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add( "out_count", OracleType.Number );
cmd.Parameters["out_count"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();// 在这里出现异常 string re = cmd.Parameters["out_count"].Value.ToString();
}
大侠们看看是怎么回事?
create or replace procedure count_num(out_count out number)
as
begin
select count(*) into out_count from wygldba.employee;
end count_num;在asp.net中调用
OracleConnection cn = new OracleConnection( strConn );
try
{
cn.Open(); OracleCommand cmd = cn.CreateCommand(); cmd.CommandText = "COUNT_NUM";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add( "out_count", OracleType.Number );
cmd.Parameters["out_count"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();// 在这里出现异常 string re = cmd.Parameters["out_count"].Value.ToString();
}
大侠们看看是怎么回事?
create or replace function count_num return number
as
var_count number;
begin
select count(*) into var_count from wygldba.employee;
return var_count;
end count_num;
/
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须说明标识符 'NUM'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
或是那句select count(*) into语句,是不是在表中数据为零时有这个问题。
{
cn.Open();OracleCommand cmd = cn.CreateCommand();cmd.CommandText = "COUNT_NUM";
cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.Add( "out_count", OracleType.Number );
cmd.Parameters["out_count"].Direction = ParameterDirection.Output;
cmd.connection.open;
cmd.ExecuteNonQuery();// 在这里出现异常
cmd.connection.close;string re = cmd.Parameters["out_count"].Value.ToString();
}