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行又会恢复成数据展示…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
