如何获取存储过程中游标型TYPE rcsIMPROVE_AIRLINE IS REF CURSOR;的out参数返回的数据集到c#程序中的DataSet数据集中?存储过程的TYPE rcsIMPROVE_AIRLINE IS REF CURSOR;是在包中定义的,在toad中设置参数调试执行有结果数据集,但如何在程序中获取该数据结果呢?OracleCommand myCommand=new OracleCommand();
OracleConnection myConnection=new OracleConnection(strCon);
myCommand.Connection=myConnection;
myCommand.Connection .Open();
myCommand.CommandText = "PROC_CHANNELIMPROVE_AIRLINE" ;//存储过程名 根据查询的条件,检索出符合条件的记录列表
myCommand.CommandType = CommandType.StoredProcedure ;//命令类型
OracleParameter iRowNum=new OracleParameter("iRowNum",OracleType.Int32,32 ,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
iRowNum.Value =p_iRowNum;
myCommand.Parameters.Add(iRowNum);OracleParameter cAgentCode=new OracleParameter("iRowNum",OracleType.Char ,8,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
cAgentCode.Value =p_cAgentCode;
myCommand.Parameters.Add(cAgentCode);OracleParameter vcAgentCname=new OracleParameter("vcAgentCname",OracleType.VarChar ,200,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcAgentCname.Value =p_vcAgentCname;
myCommand.Parameters.Add(iRowNum);OracleParameter cAreaCode=new OracleParameter("cAreaCode",OracleType.Char ,2,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
cAreaCode.Value =p_cAreaCode;
myCommand.Parameters.Add(cAreaCode);OracleParameter vcProvince=new OracleParameter("vcProvince",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcProvince.Value =p_vcProvince;
myCommand.Parameters.Add(vcProvince);OracleParameter vcCity=new OracleParameter("vcCity",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcCity.Value =p_vcCity;
myCommand.Parameters.Add(vcCity);OracleParameter vcArea=new OracleParameter("vcArea",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcArea.Value =p_vcArea;
myCommand.Parameters.Add(vcArea);OracleParameter cOutCity=new OracleParameter("cOutCity",OracleType.VarChar ,3,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
cOutCity.Value =p_cOutCity;
myCommand.Parameters.Add(cOutCity);OracleParameter cInCity=new OracleParameter("cInCity",OracleType.VarChar ,3,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
cInCity.Value =p_cInCity;
myCommand.Parameters.Add(cInCity);OracleParameter vcStartTime=new OracleParameter("vcStartTime",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcStartTime.Value =p_vcStartTime;
myCommand.Parameters.Add(vcStartTime);OracleParameter vcEndTime=new OracleParameter("vcEndTime",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcEndTime.Value =p_vcEndTime;
myCommand.Parameters.Add(vcEndTime);OracleParameter rcsImproveAirline=new OracleParameter("rcsIMPROVE_AIRLINE",OracleType.Cursor );
rcsImproveAirline.Direction =ParameterDirection.Output ;
myCommand.Parameters.Add(rcsImproveAirline);
OracleDataAdapter myAdapter = new OracleDataAdapter();
myAdapter.SelectCommand =myCommand;
DataSet dsImproveAirline=new DataSet();
myAdapter.Fill(dsImproveAirline,"tbImproveAirline");
dsImproveAirline.Dispose();
myCommand.Dispose();
myConnection.Close();
myConnection.Dispose();
执行到myAdapter.Fill(dsImproveAirline,"tbImproveAirline");出错:ORA-06550: 第 1 行, 第 7 列: PLS-00703: 列表中具有指定参数的多个例程 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored
OracleConnection myConnection=new OracleConnection(strCon);
myCommand.Connection=myConnection;
myCommand.Connection .Open();
myCommand.CommandText = "PROC_CHANNELIMPROVE_AIRLINE" ;//存储过程名 根据查询的条件,检索出符合条件的记录列表
myCommand.CommandType = CommandType.StoredProcedure ;//命令类型
OracleParameter iRowNum=new OracleParameter("iRowNum",OracleType.Int32,32 ,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
iRowNum.Value =p_iRowNum;
myCommand.Parameters.Add(iRowNum);OracleParameter cAgentCode=new OracleParameter("iRowNum",OracleType.Char ,8,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
cAgentCode.Value =p_cAgentCode;
myCommand.Parameters.Add(cAgentCode);OracleParameter vcAgentCname=new OracleParameter("vcAgentCname",OracleType.VarChar ,200,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcAgentCname.Value =p_vcAgentCname;
myCommand.Parameters.Add(iRowNum);OracleParameter cAreaCode=new OracleParameter("cAreaCode",OracleType.Char ,2,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
cAreaCode.Value =p_cAreaCode;
myCommand.Parameters.Add(cAreaCode);OracleParameter vcProvince=new OracleParameter("vcProvince",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcProvince.Value =p_vcProvince;
myCommand.Parameters.Add(vcProvince);OracleParameter vcCity=new OracleParameter("vcCity",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcCity.Value =p_vcCity;
myCommand.Parameters.Add(vcCity);OracleParameter vcArea=new OracleParameter("vcArea",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcArea.Value =p_vcArea;
myCommand.Parameters.Add(vcArea);OracleParameter cOutCity=new OracleParameter("cOutCity",OracleType.VarChar ,3,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
cOutCity.Value =p_cOutCity;
myCommand.Parameters.Add(cOutCity);OracleParameter cInCity=new OracleParameter("cInCity",OracleType.VarChar ,3,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
cInCity.Value =p_cInCity;
myCommand.Parameters.Add(cInCity);OracleParameter vcStartTime=new OracleParameter("vcStartTime",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcStartTime.Value =p_vcStartTime;
myCommand.Parameters.Add(vcStartTime);OracleParameter vcEndTime=new OracleParameter("vcEndTime",OracleType.VarChar ,10,ParameterDirection.Input ,true,0,0,"",DataRowVersion.Default ,Convert.DBNull );
vcEndTime.Value =p_vcEndTime;
myCommand.Parameters.Add(vcEndTime);OracleParameter rcsImproveAirline=new OracleParameter("rcsIMPROVE_AIRLINE",OracleType.Cursor );
rcsImproveAirline.Direction =ParameterDirection.Output ;
myCommand.Parameters.Add(rcsImproveAirline);
OracleDataAdapter myAdapter = new OracleDataAdapter();
myAdapter.SelectCommand =myCommand;
DataSet dsImproveAirline=new DataSet();
myAdapter.Fill(dsImproveAirline,"tbImproveAirline");
dsImproveAirline.Dispose();
myCommand.Dispose();
myConnection.Close();
myConnection.Dispose();
执行到myAdapter.Fill(dsImproveAirline,"tbImproveAirline");出错:ORA-06550: 第 1 行, 第 7 列: PLS-00703: 列表中具有指定参数的多个例程 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored
解决方案 »
- sql求助
- oracle触发器问题
- 還是外鍵的問題,幫幫我,謝了
- ORA-04091: 表 EGIS_ADMIN.RESOURCE_TYPE 发生了变化, 触发器/函数不能读它
- Oracle并行服务器(OPS)12问
- 请问我想了解SQLDevelper的用法,上网都没有专门介绍的,该去哪找啊?
- 查询当前使用游标数的?使用select * from V$OPEN_CURSOR
- 怎样在Oracle9i中倒入Oracle8.0.5倒出的*.dmp文件!
- 请教高手,oracle中+号代表什么意思
- Oracle form6i神奇的事情
- 触发器的问题.我写的这个触发器老是说编译有错,不明白什么意思,请指教!谢
- 有没有语句是重新编译存储过程的??
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=23364
asp,vb的调用方法,对你有启示没有