CREATE OR REPLACE PROCEDURE P_SELECT_DEPT
(
    iDeptNO int input,
    strDname VARCHAR(2) output 
)
AS
BEGIN
   select DNAME into strDname from TEST_DEPT where DEPTNO=iDeptNO;
END P_SELECT_DEPT;以上是SQL Server的存储过程

解决方案 »

  1.   

    我在应用程序中这样执行的:
    、、、、、、、
    OracleCommand cmd = new OracleCommand("P_SELECT_DEPT",conn);
    cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.Add(new OracleParameter("iDeptNO",OracleType.Number,2,"DEPTNO"));
    cmd.Parameters.Add(new OracleParameter("strDname",OracleType.VarChar,14,"DNAME")); //??
                                                                          感觉这句有问题cmd.Parameters[0].Value = textBox3.Text;              //为输入
    cmd.ExecuteNonQuery();    //在次处抱错:调用P_SELECT_DEPT参数个数或类型错误
    textBox4.Text = cmd.Parameters[1].Value.ToString();   //为输出
    、、、、、、、、
      

  2.   

    cmd.Parameters.Add(new OracleParameter("strDname",OracleType.VarChar,14,ParameterDirection.Output,false,0,0,"DNAME",DataRowVersion.Default,null));
    在这里参数有10个,都要写
      

  3.   

    是SqlServer吗?是不是少了"@",如:CREATE OR REPLACE PROCEDURE P_SELECT_DEPT
    (
        @iDeptNO  IN NUMBER,
        @strDname OUT VARCHAR2 
    )
    ...