Oracle存储过程返回DataSet(多个DataTable)给C#
一、存储过程
CREATE OR REPLACE PROCEDURE GET_SENDEXCEL_XY
(
ZGJ182X OUT SYS_REFCURSOR ,
ZGJ182Y OUT SYS_REFCURSOR ,
ZXN182X OUT SYS_REFCURSOR ,
ZXN182Y OUT SYS_REFCURSOR ,
ZLH182X OUT SYS_REFCURSOR ,
ZLH182Y OUT SYS_REFCURSOR
)
IS
mysql varchar(8000) :='' ;
mysql_first varchar(8000) :='' ;
mysql_gj varchar(8000) :='' ;
mysql_xn varchar(8000) :='' ;
mysql_lh varchar(8000) :='' ;
mysql_gj_na varchar(8000):='';
mysql_yb varchar(8000) :='' ;
firstday varchar(50) :=''; ---前三周第1天
BEGIN
select to_char(m.fstartdate,'yyyy-mm-dd') into firstday
from scada_db.avg_week_month m
where to_char(m.fstartdate,'yyyy-mm-dd') <=to_char(sysdate-14-1,'yyyy-mm-dd') --当天往前一天
and to_char(m.fenddate,'yyyy-mm-dd')>=to_char(sysdate-14-1,'yyyy-mm-dd');
select a.sqltext into mysql_first
from sysolap.AVG_DIA_SQL a where a.code='send_xy_All3';
mysql_first:=replace(mysql_first,'{firstday}',firstday); ---首先替换周日期
mysql_gj:=replace(mysql_first,'{GJXN}','ZGJPA'); ---初始化一期
mysql_xn:=replace(mysql_first,'{GJXN}','ZXNPA'); ----初始化二期
mysql_lh:= replace(mysql_first,'{GJXN}','ZLHPA'); ----初始化龙X
mysql_gj_na:= replace(mysql_first,'{GJXN}','ZXNNA'); ----初始化西XNA
mysql_yb := replace(mysql_first,'{GJXN}','ZYBPA'); ----初始化宜X182
mysql_first:='';
----1 ZGJ182X
mysql:=replace(mysql_gj,'{table}','pcx182');
mysql:=replace(mysql,'{边宽对角}','边宽182');
open ZGJ182X for mysql ;
----2 ZGJ182Y
mysql:=replace(mysql_gj,'{table}','pcy182');
mysql:=replace(mysql,'{边宽对角}','边宽182');
open ZGJ182Y for mysql ;
---3 ZXN182X
mysql:=replace(mysql_xn,'{table}','pcx182');
mysql:=replace(mysql,'{边宽对角}','边宽182');
open ZXN182X for mysql ;
-- 4 ZXN182Y
mysql:=replace(mysql_xn,'{table}','pcy182');
mysql:=replace(mysql,'{边宽对角}','边宽182');
open ZXN182Y for mysql ;
---31 ZLHPA182X
mysql:=replace(mysql_lh,'{table}','pcx182');
mysql:=replace(mysql,'{边宽对角}','边宽182');
open ZLH182X for mysql ;
-- 41 ZLHPA182Y
mysql:=replace(mysql_lh,'{table}','pcy182');
mysql:=replace(mysql,'{边宽对角}','边宽182');
open ZLH182Y for mysql ;
END;
二、C#程序接收存储过程
/// <summary>
/// 获取数据
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="conString">数据库连接串</param>
/// <param name="strARR">入参数组</param>
/// <returns></returns>
private DataSet getData(string procName, string conString, params string[] strARR)
{
using (Oracle.ManagedDataAccess.Client.OracleConnection con = new Oracle.ManagedDataAccess.Client.OracleConnection())
{
OracleCommand cmd2 = new OracleCommand();
OracleDataAdapter oda2 = new OracleDataAdapter(cmd2);
OracleParameter par1 = null;
DataSet ds = new DataSet();
con.ConnectionString = 数据库连接串;
con.Open();
cmd2.Connection = con;
cmd2.CommandType = CommandType.StoredProcedure;
cmd2.CommandText = procName;
foreach (string item in strARR)
{
par1 = new OracleParameter(item, OracleDbType.RefCursor);
par1.Direction = ParameterDirection.Output;
cmd2.Parameters.Add(par1);
}
oda2.Fill(ds);
con.Close();
return ds;
}
}
相关文章:
Oracle存储过程返回DataSet(多个DataTable)给C#
一、存储过程 CREATE OR REPLACE PROCEDURE GET_SENDEXCEL_XY ( ZGJ182X OUT SYS_REFCURSOR , ZGJ182Y OUT SYS_REFCURSOR , ZXN182X OUT SYS_REFCURSOR , ZXN182Y OUT SYS_REFCURSOR , ZLH182X OUT SYS_REFCURSOR …...
如何往excel中写子表?
with pd.ExcelWriter("C:/last_date.xlsx") as writer:for i in range(0, 10):df pd.DataFrame()df.to_excel(writer, indexFalse, sheet_namestr(days[i 1]))...
Flutter 控件查阅清单
为了方便记录和使用Flutter中的各种控件,特写此博客以记之,好记性不如烂笔头嘛:) 通过控件的首字母进行查找,本文会持续更新 控件目录 AAppBar BCContainerColumn (列) DDivider (分割线) EElev…...
【高效开发工具系列】gson入门使用
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
Python中的缺失值
Python中的缺失值 1、情景描述2、Python中的缺失值 1、情景描述 在使用Pandas中的文件读取API读取Excel、CSV或TXT等文件时,我们可能需要对读取到的数据进行简单清洗。例如,将其中的表示空值的字符串替换为真正意义上的缺失值 来看一个例子:…...
JVM 字节码
JVM概述 问题引出 你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM!想解决线上JVM GC问题,但却无从下手。新项目上线,对各种JVM参数设置一脸茫然,直接默认吧&…...
ComfiUI API调用随记
来进行知识接力了: 首先了解下ComfiUI的APIstable diffusion comfyui的api使用教程-CSDN博客 对于ComfiUI,接口比较简单。查询接口比较容易看明白。 对于发起prompt的请求,如果需要图片的,则需预先上传图片给ComfiUI,…...
Dockerfile讲解
Dockerfile 1. 构建过程解析2. Dockerfile常用保留字指令3. 案例3.1. 自定义镜像mycentosjava83.2. 虚悬镜像 4. Docker微服务实战 dockerfile是用来构建docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 dockerfile定义了进程需要的一切东西&…...
Ansible及其优势是什么?
Ansible是一款极其简单的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优点。实现了批量系统配置,批量程序部署,批量运行命令等功能。同时Ansible是基于模块工作,…...
使用群晖Docker搭建HomeAssistant并实现异地公网访问家中智能设备
最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 使用群晖Docker搭建HomeAssistant并实现异地公网访问 文章目录 使…...
重塑生成式AI时代数据战略,亚马逊云科技re:Invent大会Swami主题演讲
re:lnvent 2023 Swami Sivasubramanian主题演讲,数据、AI和人类共进共生,重塑生成式AI时代的数据战略。 赋能人才加持生成式AI必备能 生成式AI创新中心:解决生成式AI工程化挑战。 Amazon Bedrock平台PartyRock:生成式AI应用程序实…...
【恋上数据结构】哈夫曼树学习笔记
哈夫曼树 哈夫曼编码(Huffman Coding) 哈夫曼编码,又称为霍夫曼编码,它是现代压缩算法的基础 假设要把字符串 [ABBBCCCCCCCCDDDDDDEE] 转成二进制编码进行传输。 可以转成 ASCII 编码 (6569,10000011000101) &…...
前端下拉框select标签的插件——select2.js
本文采用的是select2 版本:Select2 4.0.6-rc.1。 可以兼容IE8及以上。亲测过。 官网:Getting Started | Select2 - The jQuery replacement for select boxes 一、认识select2.js 1、使用插件,首先要引入别人的插件了,你可以选…...
【MySQL的基本命令{DML 和 DDL}】
MySQL的基本命令 {DML 和 DDL} MySQL的基本命令展示所有数据库展示某个数据库中所有的表切换到某个数据库查看当前在哪个数据库查询一张表的全部数据新建一个数据库新建一张表插入一条数据删除一个表删除一个库描述表的信息展示表的创建sql代码展示库的创建sql代码导出数据 &am…...
unity3d模型中缺失animation
在 模型的Rig-Animationtype 设置成Legacy https://tieba.baidu.com/p/2293580178...
搭建自己的wiki知识库【转】
有前端基础,会Markdown、会HTML和CSS,选择 Hexo 有Vue基础可以选择 vuePress 或者 vitePress 会Go可以选择 Hugo 会Rust可以选择 Zola 会Ruby可以选择 Jekyll 会PHP可以考虑使用 WordPress 其他开源项目:docsify、GitBook 详见:如…...
【笔记】常用的Linux命令之解压缩:tar、zip、rar 命令
1、tar 常用压缩和解压缩 # 压缩文件 file1 和目录 dir2 到 test.tar.gz tar -zcvf test.tar.gz file1 dir2 # 解压 test.tar.gz(将 c 换成 x 即可) tar -zxvf test.tar.gz 额外知识:查看压缩文件内容 # 列出压缩文件的内容 tar -ztvf test…...
谈谈MYSQL索引
基本介绍 索引是帮助MySQL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗。 通俗来说, 索引就相当于一本书的目录,…...
线程中出现异常的处理
目录 前言 正文 1.线程出现异常的默认行为 2.使用 setUncaughtExceptionHandler() 方法进行异常处理 3.使用 setDefaultUncaughtExceptionHandler() 方法进行异常处理 4.线程组内处理异常 5.线程异常处理的优先性 总结 前言 在紧密交织的多线程环境中,异…...
点击元素以外的事件监听
在项目中,我们经常会遇到需要监听目标元素以外的区域被点击或鼠标移入移出等需求。 例如下面我们有一个表格里面嵌套表单的组件 我希望点击n行的时候,n行的元素变成表单元素进行输入或者选择, 当我点击其他其他区域n行又会恢复成数据展示…...
CANN 生态工具链:ATC、ACL 与 MindX 全景
一、CANN 工具链全景 1.1 工具链架构 ┌──────────────────────────────────────────────────┐ │ CANN 工具链全景 │ ├──────────────────────────────…...
3分钟上手BetterNCM:网易云音乐插件管理的终极解决方案
3分钟上手BetterNCM:网易云音乐插件管理的终极解决方案 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐PC版功能单一而烦恼吗?想要解锁更多个性…...
路由算法的终极真相:为何“绝对最佳”是伪命题?从理论陷阱到工程实战的深度破局
路由算法的终极真相:为何“绝对最佳”是伪命题?从理论陷阱到工程实战的深度破局 摘要:在计算机网络的浩瀚星图中,路由选择算法如同指引数据包穿越迷雾的灯塔。然而,无数工程师和架构师曾陷入一个巨大的思维误区&#x…...
使用TaotokenCLI工具一键配置开发环境与模型密钥
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken CLI工具一键配置开发环境与模型密钥 在接入大模型进行开发时,手动配置API密钥、Base URL和模型ID是常见的…...
告别臃肿!G-Helper:华硕笔记本用户的终极轻量级控制神器
告别臃肿!G-Helper:华硕笔记本用户的终极轻量级控制神器 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook…...
python非物质非遗文化传承与推广平台系统_h89q9jnr
目录同行可拿货,招校园代理 ,本人源头供货商项目背景核心功能技术实现应用场景项目特色项目技术支持源码获取详细视频演示 :同行可合作点击我获取源码->获取博主联系方式->进我个人主页-->同行可拿货,招校园代理 ,本人源头供货商 项目背景 Python非物质非…...
龙芯LS2K PMON启动全解析:从内核到U盘识别的奥秘
【龙芯LS2K PMON终极干货】整机设备启动全景图:从 mainbus 开机到 U 盘识别全流程 一、整篇总纲(最强一句话) 内核启动 → 读 ioconf.c/cfdata 硬件族谱 → 从根总线 mainbus 开始遍历 → 逐级 attach 设备 → 启动 PCI → 扫描到 OTG 控制器 → 加载 dwc2 驱动 → 开启 U…...
【AI入门知识点】Skills 是什么?终于有人把 Skills、Function Calling、MCP 讲明白了
为什么现在 AI 会查天气?为什么 AI 能读 Excel、操作浏览器、发邮件?为什么很多人说:未来 AI 拼的不是谁更聪明,而是谁 Skills 更多?很多刚学 AI 的人。都会被几个词搞晕:SkillsFunction CallingMCP看起来都…...
CANN-ATB多卡推理-昇腾NPU上Llama70B怎么切到8张卡
CANN-ATB多卡推理-昇腾NPU上Llama70B怎么切到8张卡 Llama2-70B 的权重 140GB,单张 Atlas 800I A2 的 64GB 显存放不下。ATB 的多卡推理用 Tensor Parallel 把模型切到多张 NPU 上,每张卡只存 1/N 的权重和 KV Cache。 Tensor Parallel 的切法 Llama2-70B…...
ARM NEON中的VMLAL/VMLSL指令详解与优化实践
1. ARM SIMD指令集概述在嵌入式系统和移动计算领域,ARM架构凭借其出色的能效比占据了主导地位。随着多媒体处理、机器学习等计算密集型任务的普及,单指令多数据流(SIMD)技术成为提升处理器性能的关键手段。ARM的Advanced SIMD扩展(通常称为NEON技术)提供…...
