人大金昌netcore适配,调用oracle模式下存储过程\包,返回参数游标

cs 复制代码
 using KdbndpConnection conn = new KdbndpConnection("Host=192.168.133.221;Port=54321;Database=db1;Pooling=true;User ID=system;Password=123");
 conn.Open();
 //存储过程调用也是类似
 using var cmd = conn.CreateCommand();
 cmd.CommandText = "模式.包名称.存储过程名称";
 cmd.CommandType = CommandType.StoredProcedure;
 //参数1是普通入参
 var p1 = cmd.CreateParameter();
 p1.ParameterName = "p1";
 p1.Direction = ParameterDirection.Input;
 p1.Value = "123";
 cmd.Parameters.Add(p1);
 //参数2是一个select结果的游标
 var p2 = cmd.CreateParameter();
 p2.ParameterName = "Resultlist";
 p2.Direction = ParameterDirection.Output;
 p2.KdbndpDbType = KdbndpTypes.KdbndpDbType.Refcursor;
 cmd.Parameters.Add(p2);

 //执行
 cmd.ExecuteNonQuery();

 //游标数据获取
 var curName = p2.Value;
 cmd.CommandText = $"fetch all in \"{curName}\"";
 cmd.CommandType = CommandType.Text;
 //生成dt
 DataTable dt = new DataTable();
 using var adp = new KdbndpDataAdapter(cmd);
 adp.Fill(dt);

官网下载的包有问题,使用这个包就ok

https://download.csdn.net/download/pehao/89077002

相关推荐
2401_871492851 分钟前
Python机器学习怎么防止数据泄漏_确保Scaler在Pipeline内拟合
jvm·数据库·python
【心态好不摆烂】2 分钟前
数据库基础
数据库
Bert.Cai5 分钟前
MySQL UPPER()函数详解
数据库·mysql
2301_818008448 分钟前
MySQL怎样在触发器中引用新旧数据行_NEW与OLD关键字详解
jvm·数据库·python
langsiming13 分钟前
【无标题】
java·开发语言·数据库
Boop_wu28 分钟前
[Java EE 进阶]Mybatis进阶(动态SQL)
java·数据库·maven·mybatis
Elastic 中国社区官方博客32 分钟前
使用 EDOT Browser 和 Kibana 进行 OpenTelemetry 浏览器端埋点
大数据·服务器·数据库·elasticsearch·搜索引擎·单元测试·可用性测试
星轨zb1 小时前
为什么Mysql需要索引以及如何应用到项目中
数据库·mysql
Old Uncle Tom1 小时前
提示词编写规范
数据库·算法
l1t1 小时前
DeepSeek总结的Postgres 扩展天花板:当一个实例试图包揽一切时
数据库·postgresql