////////////////PLSQL创建存储过程如下
create or replace procedure insertName
(
 username in char(20),
 sex in char(2),
 age in char(3),
 address in char(100)
)
is 
begin 
    select count(username) from userinfo;
end insertName;//////////////////NET中取存储过程如下:
conn连接时没有问题的!!        string username = this.username.Text.Trim().ToString();
        string age = this.age.Text.Trim().ToString();
        string sex = this.sex.Text.Trim().ToString();
        string address = this.address.Text.Trim().ToString();        OracleConnection conn = getconnoracle();        OracleCommand cmd = new OracleCommand();
        cmd.CommandText = "insertName";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("username", username);
        cmd.Parameters.Add("sex", sex);
        cmd.Parameters.Add("age", age);
        cmd.Parameters.Add("address", address);
        cmd.Connection = conn;        try
        {
            conn.Open();
            cmd.ExecuteNonQuery();
            Response.Write("suess!");
        }
        catch (Exception oo)
        {
            Response.Write(oo.Message);
        }
        finally
        {
            conn.Close();
        }运行结果如下:
ORA-06550: 第 1 行, 第 7 列: PLS-00905: 对象 COMMONUSER.INSERTNAME 无效 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored 按网上说如果将
        cmd.Parameters.Add("username", username);
        cmd.Parameters.Add("sex", sex);
        cmd.Parameters.Add("age", age);
        cmd.Parameters.Add("address", address);
变成
        cmd.Parameters.Add(":username", username);
        cmd.Parameters.Add(":sex", sex);
        cmd.Parameters.Add(":age", age);
        cmd.Parameters.Add(":address", address);结果::内部 .Net Framework 数据提供程序错误 30。小弟新手,深夜求教,望各位哥哥不吝指导!!!

解决方案 »

  1.   

    COMMONUSER.INSERTNAME 其中的COMMONUSER是用户名
    我用它登录PLSQL来写的存储过程!
    oracle10g + net3.5
      

  2.   

    create or replace procedure insertName 

    username char, 
    sex char, 
    age  char, 
    address  char 

    is 
    begin 
        insert into userinfo values (username,sex,age,address);end insertName; 
    end insertName; 
    上网查了一个晚上了···改成这样就OKl