有存储过程:
SP_PUB_ID
(New_ID in int)
as
begin
null;
end;
前台调用:
private void button1_Click_1(object sender, EventArgs e)
{
string sqlGetCode="SP_PUB_ID";
OracleConnection oraCon = new OracleConnection(
“
your Connect String
”
);
OracleCommand oraCmd = new OracleCommand();
oraCmd.Connection = oraCon;
oraCmd.CommandType = CommandType.StoredProcedure;
oraCmd.CommandText = sqlGetCode;
OracleParameter tt = new OracleParameter();
tt.ParameterName = "NewID";
tt.OracleType = OracleType.Int32;
tt.Direction = ParameterDirection.Input;
tt.Value = 1;
oraCmd.Parameters.Add(tt);
try
{
oraCon.Open();
oraCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
ps.oraCon.Close();
}
错误提示:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SP_PUB_ID'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
你能看到问题在哪么?
由于自己很久以前只在VB.Net中对于SqlServer的用过一两次,现在第一次在Oracle中用,很是生疏,而且根据以前的经验,同样的写法可能不适用。错误提示又不明显,总是怀疑是不是程序方法有问题,那天下午又比较昏,我又喜欢自己独立解决,不喜欢轻易问人,调试了半天也没有用,实在没办法问同事,也都没有这样用过,但是没有请他们看程序。后来就上网问,结果一问就有人发现问题了,就是参数名写错了。大骂自己混蛋,白痴!这样低级的错误都没发现,还浪费了大半天的时间。