C#调用带输入输出参数及结果集Oracle存储过程

数据库存储过程如图:
C#调用带输入输出参数及结果集Oracle存储过程_第1张图片
winfrom后端代码
引用using Oracle.ManagedDataAccess.Client;

       public DataTable GetCommadDECSData(string oppType, string data)
        {
        	//参数
            OracleParameter[] par = new OracleParameter[]
            {
                   new OracleParameter("p_transtype",OracleDbType.Varchar2,50),
                   new OracleParameter("p_plant",OracleDbType.Varchar2,50),
                   new OracleParameter("p_string1",OracleDbType.Varchar2),
                   new OracleParameter("p_string2",OracleDbType.Varchar2), 
                   new OracleParameter("p_string3",OracleDbType.Varchar2),
                   new OracleParameter("p_string4",OracleDbType.Varchar2),
                   new OracleParameter("p_string5",OracleDbType.Varchar2),
                   new OracleParameter("o_ds_dataset",OracleDbType.RefCursor,5000),//返回结果集参数
                   new OracleParameter("o_res", OracleDbType.Varchar2,200)
            };
            par[0].Value = oppType;
            par[1].Value = "3301";
            par[2].Value = data;
            par[3].Value = "";
            par[4].Value = "";
            par[5].Value = "";
            par[6].Value = "";
            par[7].Direction = ParameterDirection.Output;//定义输出参数output
            par[8].Direction = ParameterDirection.Output;

            return OracleHelper.RunProcedureGetDataSet("SP_COMMON_GET_DATASET", par, ref ds).Tables[0];
            
        }
        /// 
        /// 执行存储过程,返回数据集
        /// 
        /// 存储过程名
        /// 存储过程参数
        /// DataSet
        public static DataSet RunProcedureGetDataSet(string storedProcName, OracleParameter[] parameters)
        {
            using (OracleConnection connection = new OracleConnection(DBUrl))
            {
                DataSet dataSet = new DataSet();
                connection.Open();
                OracleDataAdapter sqlDA = new OracleDataAdapter();
                sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
                sqlDA.Fill(dataSet, "dt");
                connection.Close();
                return dataSet;
            }
        }

你可能感兴趣的:(oracle,c#,asp.net,数据库)