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;
            }  
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/186893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue模块与小程序生命周期

文章目录 一、Vue中五个模块1、state2、getters3、mutations4、actions5、modules 二、小程序中的生命周期 一、Vue中五个模块 1、state 是用来存储数据的地方&#xff0c;我们需要传递的数据或者需要保存的数据都会在state中声明。 2、getters 类似于Vue中的计算属性&…

html/css中位置position的绝对位置absolute顺时针盒子案例图片排序

目标图片&#xff1a; Dreamweaver界面&#xff1a; 代码部分&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>无标题文档</title> <style type"text/css">.red{background-color:r…

element中el-form-item设置label-width=‘auto‘报错

文章目录 一、问题二、解决三、最后 一、问题 el-form中的设置了全局标题宽度是200px&#xff0c;此时想要对el-form-item取消标题宽度&#xff0c;设置了label-widthauto&#xff0c;结果&#xff0c;报错了~~~ <el-form label-width"200px" label-position&quo…

python的itertools库

itertools常用的方法如下&#xff1a; import itertools 1. 生成的列表累加&#xff0c;在生成新的列表x itertools.accumulate(range(10))print(list(x))结果&#xff1a;[0, 1, 3, 6, 10, 15, 21, 28, 36, 45] 2. 连接多个列表或者迭代器x itertools.chain(range(3), rang…

强大的Kubernetes工具的完整指南

在容器化应用程序编排方面&#xff0c;Kubernetes是市场的领导者。它允许用户在多主机环境中管理容器&#xff0c;提供工作负载分配和网络处理。 此外&#xff0c;它还提供了许多在DevOps过程中至关重要的特性&#xff0c;例如自动扩展、自动修复和负载平衡。这些功能解释了Kub…

Android问题笔记四十八:蓝牙obtainMessage数据传输部分数据丢失乱序问题

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

YOLOv8改进 | 2023 | 通过RFAConv重塑空间注意力(深度学习的前沿突破)

一、本文介绍 本文给大家带来的改进机制是RFAConv&#xff0c;全称为Receptive-Field Attention Convolution&#xff0c;是一种全新的空间注意力机制。与传统的空间注意力方法相比&#xff0c;RFAConv能够更有效地处理图像中的细节和复杂模式(适用于所有的检测对象都有一定的…

springboot+jsp+java房屋销售出租赁网站的ssm设计与实现7xcvq

三、研究方案&#xff08;主要研究内容、目标、研究方法等&#xff09; 主要研究内容 房屋租售网站采用的开发框架为springboot框架&#xff0c;也就是Spring mvc、Spring、MyBatis这三个框架&#xff0c;页面设计用的是jsp技术作为动态页面文件设计&#xff0c;jsp文件里可以对…

【多传感器融合】BEVFusion: 激光雷达和视觉融合框架 NeurIPS 2022

前言 BEVFusion其实有两篇&#xff0c; 【1】BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework. NeurIPS 2022 | 北大&阿里提出 【2】BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation 2022 | MIT提出 本文先分…

Google Chrome访问出现 NET::ERR_CERT_INVALID

Google Chrome访问出现 NET::ERR_CERT_INVALID然后访问不了当前网站&#xff0c;这个是由于证书失效了&#xff0c;临时解决方式是&#xff1a; 第一种方案&#xff1a; 在Chrome提示“您的连接不是私密连接”页面的空白区域点击一下&#xff0c;然后输入“thisisunsafe”(页…

Android 13.0 SystemUI增加低电量弹窗功能

1.概述 在13.0系统定制开发rom的产品时,对于低电量提醒也是个很好的体验,由于产品要求在低电量的时候增加个弹窗提醒用户电量低及时充电,所以就开发了这个功能 2.SystemUI中实现低电量弹窗功能核心类 /frameworks/base/packages/SystemUI/src/com/android/systemui/System…

过滤器

Filter:用于拦截请求Servlet:处理请求 响应结果 listener:监听器 客户端请求资源&#xff1a;正常直接请求url,同一的资源定位符来进行请求&#xff0c;服务器处理后把结果响应给你&#xff0c;但是由于filter的存在 有放行和拦截两种状态 他的作用就是拦截或者放行请求 加依…

人工智能 - 目标检测:发展历史、技术全解与实战

目录 一、早期方法&#xff1a;滑动窗口和特征提取滑动窗口机制工作原理 特征提取方法HOG&#xff08;Histogram of Oriented Gradients&#xff09;SIFT&#xff08;Scale-Invariant Feature Transform&#xff09; 二、深度学习的兴起&#xff1a;CNN在目标检测中的应用CNN的…

《QDebug 2023年11月》

一、Qt Widgets 问题交流 1. 二、Qt Quick 问题交流 1.QML 程序渲染异常&#xff08;闪烁、撕裂等&#xff09; Qt5 QML 应用 OpenGL 实现的顺序是 desktop&#xff0c;angle&#xff0c;software&#xff0c;但是经常会遇到渲染异常&#xff0c;比如鼠标在上面晃动的时候闪…

[c++]—string类___深度学习string标准库成员函数与非成员函数

要相信别人能做出来自己一定可以做出来&#xff0c;只不过是时间没到而已 目录 &#x1f6a9;string类对象capacity操作 &#x1f4bb;reserve()保留 &#x1f4bb;resize() &#x1f6a9;string类对象元素访问操作 &#x1f4bb;operator[]和at() &#x1f4bb;operator…

scrum 敏捷开发

scrum 敏捷开发 Scrum 是一种敏捷软件开发方法&#xff0c;旨在通过迭代、增量和协作的方式提高团队的效率和产品质量。下面是关于 Scrum 的一些重要概念和实践&#xff1a; 1. Scrum 团队角色 Scrum 团队通常由以下角色组成&#xff1a; 产品负责人&#xff08;Product Ow…

如何让嵌入式开发板使用主机的网络

配置网络 1.开发板配置 将开发板和主机用网线连接 安装 net-tools&#xff0c;使用 ifconfig 命令 或者使用 ip 命令 su root ip a 发现一个 eth0的网口 ip link set xxx up 有多个网口时可以用该命令启用某一个网口 vim /etc/netplan/00-installer-config.yaml写入以下…

HTML—列表、表格、表单

1、列表 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表 1.1 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的区域 标签&#xff1a;ul 嵌套 li&#xff0c;ul 是无序列表&#xff0c;li 是列表条目 注意事项&#…

FPGA falsh相关知识总结

1.存储容量是128M/8 Mb16MB 2.有256个sector扇区*每个扇区64KB16MB 3.一页256Byte 4.页编程地址0256 5&#xff1a;在调试SPI时序的时候一定注意&#xff0c;miso和mosi两个管脚只要没发送数据就一定要悬空&#xff08;处于高组态&#xff09;&#xff0c;不然指令会通过两…

【双向链表的实现】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 1. 双向链表的结构 2. 双向链表的实现 2.1 头文件 ——双向链表的创建及功能函数的定义 2.2 源文件 ——双向链表的功能函数的实现 2.3 源文件 ——双向链表功能的…