我想在C#中调用存储过程或者函数的返回集,但是老是报错
在PLSQL中是正常的。C#老是在da.Fill(ds);报错==>
System.Data.OracleClient.OracleException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'GETINFO'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
在 System.Data.Oracle以下是小弟的代码:OracleCommand cmd = new OracleCommand();
cmd.CommandText = "Pkg_test2.getInfo";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = oracleCon; OracleParameter cursor = new OracleParameter("my_type", OracleType.Cursor);
cursor.Direction = System.Data.ParameterDirection.Output; cmd.Parameters.Add(cursor); System.Data.OracleClient.OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
this.dataGridView1.DataSource = ds.Tables[0];
CREATE OR REPLACE package Pkg_test2
is
TYPE my_type is ref cursor;
PROCEDURE getInfo(mycs out my_type);
END; CREATE OR REPLACE package BODY Pkg_test2
IS
PROCEDURE getInfo(mycs out my_type)IS
BEGIN
OPEN mycs for select * from DRIVER_MST;
END getInfo;END Pkg_test2;
在PLSQL中是正常的。C#老是在da.Fill(ds);报错==>
System.Data.OracleClient.OracleException: ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'GETINFO'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
在 System.Data.Oracle以下是小弟的代码:OracleCommand cmd = new OracleCommand();
cmd.CommandText = "Pkg_test2.getInfo";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = oracleCon; OracleParameter cursor = new OracleParameter("my_type", OracleType.Cursor);
cursor.Direction = System.Data.ParameterDirection.Output; cmd.Parameters.Add(cursor); System.Data.OracleClient.OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
this.dataGridView1.DataSource = ds.Tables[0];
CREATE OR REPLACE package Pkg_test2
is
TYPE my_type is ref cursor;
PROCEDURE getInfo(mycs out my_type);
END; CREATE OR REPLACE package BODY Pkg_test2
IS
PROCEDURE getInfo(mycs out my_type)IS
BEGIN
OPEN mycs for select * from DRIVER_MST;
END getInfo;END Pkg_test2;
解决方案 »
- 插入mysql数据库,错误"Incorrect string value: '\xA8D DVD...' for column 'intro' at row 1"
- 超菜提问:C#中的数据库连接问题
- 向数据库添加一条记录时,如何控制文字中格式
- 如何关掉窗体,系统没有退出。
- 有什么好的开源即时通讯项目?有服务器和客户端的。最好是C#的?
- DataGridViewComboBoxColumn下拉框级联
- StreamReader.Read的疑问
- TeeChart FOR .NET 哪儿有免费的下载?? 谢谢啦!
- jinbingg(bing)、CSTerry(Terry)、 freehul(Leo) 、CMIC(大象) 等请进来领分!
- 我们给你做外包!!!
- 请教大家一个关于搜索引擎的问题,谢谢
- 多线程问题。。。关于2线程之间的关联
应该是类型不匹配
试下这,手写的可能不对,你试试:
OracleParameter cursor = new OracleParameter("my_type", OracleType.Cursor);
cursor.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(cursor);
----〉----〉----〉
cmd.Parameters.Add("my_type",OracleType.Cursor);
cmd.Parameters.Direction = ParameterDirection.Output;