public DataSet GetQualityStatistics(DateTime start_date,DateTime  end_date,string modality,string hospital_id)
{
StringBuilder sql = new StringBuilder();
List<DbParameter> paras = new List<DbParameter>(); IDBHelper dbhelper = DBFactory.createDBHleper();
DataSet ds = new DataSet();
switch (sqlType)
{
case "MSSQL2008": break;
case "Oracle": sql.Append(" begin ");
//科室内图像质量评价
sql.Append(@" open :var_1 for 'SELECT COUNT(*)NUM, NVL(B.Dept_image_quality,2)QUALITY,to_char(A.REGISTRATION_DATE,''mm'') MONTH FROM PATIENT_REGISTRATION A
LEFT JOIN QUALITY_EVALUATION B ON A.REGISTRATION_ID=B.REG_ID WHERE to_char(A.REGISTRATION_DATE,''yyyy-MM-dd hh:mi:ss'') >=''"+start_date+"'' " )
.Append(@"AND to_char(A.REGISTRATION_DATE,''yyyy-MM-dd hh:mi:ss'') <=''"+end_date+"'' AND MODALITY=''"+modality+"'' AND HOSPITAL_ID=''"+hospital_id+"'' ")
.Append(@" GROUP BY B.Dept_image_quality,to_char(A.REGISTRATION_DATE,''mm'') ORDER BY B.Dept_image_quality,to_char(A.REGISTRATION_DATE,''mm'')' ;
");
//sql.Append(" ");
////科室内报告质量评价
//sql.Append(" begin ");
sql.Append(@" open :var_2 for ' SELECT COUNT(*)NUM, NVL(B.Dept_report_quality,2)QUALITY,to_char(A.REGISTRATION_DATE,''mm'') MONTH FROM PATIENT_REGISTRATION A
LEFT JOIN QUALITY_EVALUATION B ON A.REGISTRATION_ID=B.REG_ID WHERE to_char(A.REGISTRATION_DATE,''yyyy-MM-dd hh:mi:ss'') >=''" +start_date+"'' ") .Append("AND to_char(A.REGISTRATION_DATE,''yyyy-MM-dd hh:mi:ss'') <=''"+end_date+"'' AND MODALITY=''"+modality+"'' AND HOSPITAL_ID=''"+hospital_id+"'' ")
.Append(@" GROUP BY B.Dept_report_quality,to_char(A.REGISTRATION_DATE,''mm'') ORDER BY B.Dept_report_quality,to_char(A.REGISTRATION_DATE,''mm'')';
");
//sql.Append(" end; ");
////临床对图像质量评价
//sql.Append(" begin ");
sql.Append(@" open :var_3 for 'SELECT COUNT(*)NUM, NVL(B.Clinic_image_quality,2)QUALITY,to_char(A.REGISTRATION_DATE,''mm'') MONTH FROM PATIENT_REGISTRATION A
LEFT JOIN QUALITY_EVALUATION B ON A.REGISTRATION_ID=B.REG_ID
WHERE to_char(A.REGISTRATION_DATE,''yyyy-MM-dd hh:mi:ss'') >=''" +start_date+"'' AND to_char(A.REGISTRATION_DATE,''yyyy-MM-dd hh:mi:ss'') <=''"+end_date+"'' AND MODALITY=''"+modality+"'' AND HOSPITAL_ID=''"+hospital_id+"'' ") .Append(@" GROUP BY B.Clinic_image_quality,to_char(A.REGISTRATION_DATE,''mm'') ORDER BY B.Clinic_image_quality,to_char(A.REGISTRATION_DATE,''mm'')';
");
//sql.Append(" end; ");
////临床对报告质量评价
//sql.Append(" begin ");
sql.Append(@" open :var_4 for 'SELECT COUNT(*)NUM, NVL(B.Clinic_report_quality,2)QUALITY,to_char(A.REGISTRATION_DATE,''mm'') MONTH FROM PATIENT_REGISTRATION A
LEFT JOIN QUALITY_EVALUATION B ON A.REGISTRATION_ID=B.REG_ID
WHERE to_char(A.REGISTRATION_DATE,''yyyy-MM-dd hh:mi:ss'') >=''" +start_date+"'' AND to_char(A.REGISTRATION_DATE,''yyyy-MM-dd hh:mi:ss'') <=''"+end_date+"'' AND MODALITY=''"+modality+"'' AND HOSPITAL_ID=''"+hospital_id+"'' ") .Append(" GROUP BY B.Clinic_report_quality,to_char(A.REGISTRATION_DATE,''mm'') ORDER BY B.Clinic_report_quality,to_char(A.REGISTRATION_DATE,''mm'')'; ");
sql.Append(" end; ");
var p = new OracleParameter(":var_1", OracleDbType.RefCursor);
p.Direction = ParameterDirection.Output;
paras.Add(p);
var p2=new OracleParameter(":var_2", OracleDbType.RefCursor);
p2.Direction = ParameterDirection.Output;
paras.Add(p2);
var p3=new OracleParameter(":var_3", OracleDbType.RefCursor);
p3.Direction = ParameterDirection.Output;
paras.Add(p3);
var p4=new OracleParameter(":var_4", OracleDbType.RefCursor);
p4.Direction = ParameterDirection.Output;
paras.Add(p4);
ds = dbhelper.Query(sql.ToString(),paras); break;
default: break;
} return ds;
}
以上代码返回的是4个dataset。
贴别注意,open :var_1 for ‘ ’这里面的语句,所有的单引号都要变成两个单引号。

oracle 多条语句同时执行(比如返回两个dataset)的更多相关文章

  1. Oracle 一次执行多条语句

    在.Net使用多次方法一次执行多条语句都不成功, 百度了许久才找到正确的解决方案. Oracle执行多条语句的时候 不能有物理换行 写法对比: 如下写法是不成功. begin into t_test ...

  2. Oracle常用函数:DateDiff() 返回两个日期之间的时间间隔自定义函数

    首先在oracle中没有datediff()函数可以用以下方法在oracle中实现该函数的功能:1.利用日期间的加减运算天:ROUND(TO_NUMBER(END_DATE - START_DATE) ...

  3. Oracle通过JOB定时执行存储过程实现两表数据比对

    需求: 第三方云平台管理的虚拟机会进行关机.资源扩展等操作,因此开关机状态.CPU.内存.磁盘大小等数据需要进行同步.这里第三方云平台是BMC CLM云平台,底层虚拟化平台是Vcenter.进行同步的 ...

  4. [转载]T-SQL(Oracle)语句查询执行顺序

    原文链接:http://blog.sina.com.cn/s/blog_61c006ea0100mlgq.html sql语法的分析是从右到左,where子句中的条件书写顺序,基本上对sql性能没有影 ...

  5. Oracle sql语句执行顺序

    sql语法的分析是从右到左 一.sql语句的执行步骤: 1)词法分析,词法分析阶段是编译过程的第一个阶段.这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构 ...

  6. Oracle数据库查看执行计划

    基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分 ...

  7. 转://看懂Oracle中的执行计划

    一.什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述 二.怎样查看Oracle执行计划? 2.1 explain plan for命令查看执行计划 在sq ...

  8. 【转】oracle定制定时执行任务

    本节摘要:本节介绍使用oracle自带的job来实现oracle定制定时执行任务. 1.引言 定制定时执行的任务有两种形式,系统级别和数据库级别, 从操作系统级别来讲, windows系统我们可以使用 ...

  9. 基于Oracle的SQL优化(崔华著)-整理笔记-第2章“Oracle里的执行计划”

    详细介绍了Oracle数据里与执行计划有关的各个方面的内容,包括执行计划的含义,加何查看执行计划,如何得到目标SQL真实的执行计划,如何查看执行计划的执行顺序,Oracle数据库里各种常见的执行计划的 ...

随机推荐

  1. CAST()函数

    语法: CAST(expression AS data_type) 参数说明: expression:任何有效的SQServer表达式 AS:用于分割两个参数,在AS之前的是需要处理的数据,在AS之后 ...

  2. 商品sku规格选择效果,没有商品的不能选中,选择顺序不影响展示结果

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  3. CBitmap、HBITMAP、BITMAP相互转换

    一:理解 BITMAP是C++中定义的位图结构体 HBITMAP是Windows中使用的位图句柄 CBitmap是MFC封装的位图类 二:相互转换 1.HBITMAP->CBitmap 方法一: ...

  4. C# SQLite编程总结

    1.如果自己手动创建了数据库和字段,则不需要再创建table,基本流程: 1)SQLiteConnectionStringBuilder sb = new SQLiteConnectionString ...

  5. Mysql 连接sleep状态问题解决。

    昨日mysql总是出问题,各种程序在运行时,出现了连接已断开的问题.  导致此问题的原因: 1. 最大连接数 2. 网络问题 3. mysql服务器资源问题 然而,上面最常见的3个问题都没有出现.后来 ...

  6. 用Javascript动态添加删除HTML元素实例 (转载)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. aspjpeg 组件在asp中的使用

    本来好的系统,你却没有做好迁移等交接工作,所以,要麻烦死自己了-------for 凌杰 首先,该系统为asp系统,需要aspjpeg  支持.... 经过使用和测试.发现有如下小结. 1. 安装时 ...

  8. Linux代码的重用与强行卸载Linux驱动

    (一)Linux代码的重用 重用=静态重用(将要重用的代码放到其他的文件的头文件中声明)+动态重用(使用另外一个Linux驱动中的资源,例如函数.变量.宏等) 1.编译是由多个文件组成的Linux驱动 ...

  9. spring 整合 spring mvc

    需要进行 Spring 整合 SpringMVC 吗 ? 还是否需要再加入 Spring 的 IOC 容器 ? 是否需要再 web.xml 文件中配置启动 Spring IOC 容器的 Context ...

  10. Json 讲解

    JSON详解 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”, ...