"ORA-06550: line 1, column 7:\nPLS-00306: wrong number or types of arguments in call to 'ADDSINGLEUSER'\nORA-06550: line 1, column 7:\nPL/SQL: Statement ignored\n"总是报这个错--增加一个独立的用户
PROCEDURE AddSingleUser(username IN VARCHAR2,userpassword IN VARCHAR2) IS
BEGIN
INSERT INTO tb_user(user_id,user_name,user_password)
VALUES (user_sequ.nextval,username,userpassword);
END AddSingleUser;
这是存储过程体public void AddUserInGroup(User user,int groupid)
{
OracleConnection con=null; try
{
con=new OracleDatabase().GetConnection();
con.Open();

OracleCommand command=new OracleCommand();
command.Connection=con;
command.CommandText="user_pack.AddUserInGroup";
command.CommandType=CommandType.StoredProcedure; command.Parameters.Add("username",OracleType.VarChar).Value=user.Name;
command.Parameters.Add("password",OracleType.VarChar).Value=user.Password;
command.Parameters.Add("groupid",OracleType.Int32).Value=groupid; 
              
command.ExecuteNonQuery();
}
catch (Exception e)
{
throw e;
}
finally
{
if (con!=null)
{
con.Close();
}
}
这是调用方法但是存储过程在SQLPLUS中可以正常执行,不知道怎么回事,哪位大侠帮帮我,急死我了,感谢!

解决方案 »

  1.   

    command.Parameters.Add("groupid",OracleType.Int32).Value=groupid; 
    多了一个参数吧
      

  2.   

    存储过程贴错了
    --增加一个独立的用户
    PROCEDURE AddSingleUser(username IN VARCHAR2,userpassword IN VARCHAR2) IS
    BEGIN
    INSERT INTO tb_user(user_id,user_name,user_password)
    VALUES (user_sequ.nextval,username,userpassword);
    END AddSingleUser;应该是这个
      

  3.   

    我靠,我也碰到这问题,刚学ORACLE真不习惯
    用SQL SERVER这么写一点问题都没有
      

  4.   

    弄了半天终于知道什么原因了,害我散了60分
    这是由于权限的问题
    你可以这样创建存储过程名
    create or replace procedure user(--你在。NET连接中用的用户名).proc_name
    ....--后面就不用写了吧