今天有一段代码,先是用程序实现。

闲来无聊,又用存储过程实现了一次。

程序中实现。

        /// <summary>
/// 根据区域和用户名获取可访问的国家
/// </summary>
public DataTable GetCountry(string area,string user)
{
try
{
NHibernate.Engine.ISessionImplementor FactoryImpl = FrameWork.Repository.NHb.SessionBuilder.CreateSession().GetSessionImplementation();
OracleCommand cmd = new OracleCommand(); string strWhere1 = "1=1 ";
string strWhere2 = "1=1 "; if (!String.IsNullOrEmpty(user))
{
strWhere1 += String.Format( "and vrs.u_logname = '{0}'",user);
} if (!String.IsNullOrEmpty(area))
{
strWhere2 += String.Format("and cc.sales_area = '{0}'", area);
}
string sqlstr =String.Format( @"select distinct scg.customer_country,cc.sales_area,cc.countrye,cc.countryc
from ifce.vw_rsh_user vru,
ele_bill.sap_customer_general scg,
shipuser.countryce cc
where vru.sap_cust_no = scg.customer_number
and scg.customer_country = cc.short_e
and vru.u_loginid in
(select column_value countryId
from table(splitstr_fun((select vrs.u_loginid || ',' ||
vrs.agent_user_id
from ifce.vw_rsh_user vrs
where {0}),
',')))
and {1}", strWhere1, strWhere2); cmd.Parameters.Clear(); OracleConnection conn = (OracleConnection)FactoryImpl.Connection;
cmd.Connection = conn;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = sqlstr;
cmd.ExecuteNonQuery(); OracleDataAdapter da = new OracleDataAdapter(cmd);
System.Data.DataSet ds = new System.Data.DataSet();
da.Fill(ds);
return ds.Tables[];
}
catch (Exception e)
{
throw new FrameWork.THrException("Fail!", e);
}
}

存储过程中实现。

  /*******************************************************/
/* 根据区域和用户名获取可访问的国家 */
/* create bby wufei 2013 11 26 */
/*******************************************************/
procedure Query_Country(p_area varchar2,
p_user varchar2,
x_cur out cur_forlog) is
strWhere1 varchar2(100);
strWhere2 varchar2(100);
sqlstr varchar2(1000);
begin strWhere1 := '1=1 ';
strWhere2 := '1=1 '; if (p_user is not null) then
strWhere1 := strWhere1 || ' and vrs.u_logname = ''''||''' || p_user || '''||''''';
end if; /* if p_area is not null then
strWhere2 := strWhere2 || 'and cc.sales_area =''' || p_area '''';
end if;*/ sqlstr:='select distinct scg.customer_country,
cc.sales_area,
cc.countrye,
cc.countryc
from ifce.vw_rsh_user vru,
ele_bill.sap_customer_general scg,
shipuser.countryce cc
where vru.sap_cust_no = scg.customer_number
and scg.customer_country = cc.short_e
and vru.u_loginid in (select column_value countryId
from table(splitstr_fun((select vrs.u_loginid || '','' ||
vrs.agent_user_id
from ifce.vw_rsh_user vrs
where ' || strWhere1 ||'),
'','')))
and '|| strWhere2 ;
dbms_output.put_line(sqlstr);
open x_cur for
sqlstr; exception
when others then
null;
end Query_Country;

其中存储过程中还是有一些亮点的,比如将将查询table化,比如splitstr_fun。

数据库编程与C#编程互译的更多相关文章

  1. R语言读入数据库的中英名词互译测试并计分脚本(考试用)

    1. 分子生物学中英文.csv,输入文件,两列,以tab键分隔的txt文本,没有列名 2. 错误的名解.csv, 如果在测试中拼写错误,会写出到这个文件,可用这个容易犯错的名词进行新的测试 3. 注意 ...

  2. SQL Server数据库的基础脚本编程

    数据库脚本的基础编程 Go批量处理语句 用于同时处理多条语句 use指定数据库或表 use master --创建数据库 go use Student --创建表(Student)表示数据库 go 创 ...

  3. python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点

    python 闯关之路四(下)(并发编程与数据库编程)   并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型   操作系统工作原理介绍.线程.进程演化史.特点.区别 ...

  4. 物联网网络编程、Web编程综述

    本文是基于嵌入式物联网研发工程师的视觉对网络编程和web编程进行阐述.对于专注J2EE后端服务开发的童鞋们来说,这篇文章可能稍显简单.但是网络编程和web编程对于绝大部分嵌入式物联网工程师来说是一块真 ...

  5. RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大、最高效的方法之一。它为在分布式计算环境中运行的几乎所有应用程序提供基础。

    RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大.最高效的方法之一.它为在分布式计算环境中运行的几乎所有应用程序提供基础.本文介绍 RPC 客户机和服务器之间基本的事件流 ...

  6. 【憩园】C#并发编程之异步编程(一)

    写在前面 C#5.0中,对异步编程进行了一次革命性的重构,引入了async和await这两个关键字,使得开发人员在不需要深刻了解异步编程的底层原理,就可以写出十分优美而又代码量极少的代码.如果使用得当 ...

  7. C#复习笔记(5)--C#5:简化的异步编程(异步编程的基础知识)

    异步编程的基础知识 C#5推出的async和await关键字使异步编程从表面上来说变得简单了许多,我们只需要了解不多的知识就可以编写出有效的异步代码. 在介绍async和await之前,先介绍一些基础 ...

  8. C#并发编程之异步编程2

    C#并发编程之异步编程(二)   写在前面 前面一篇文章介绍了异步编程的基本内容,同时也简要说明了async和await的一些用法.本篇文章将对async和await这两个关键字进行深入探讨,研究其中 ...

  9. 物联网网络编程和web编程

    本文是基于嵌入式物联网研发project师的视觉对网络编程和web编程进行阐述. 对于专注J2EE后端服务开发的同学来说,这篇文章可能略微简单.可是网络编程和web编程对于绝大部分嵌入式物联网proj ...

  10. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分   老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/gu ...

随机推荐

  1. 文字沟通工具使用SignalR,跨域例子源代码

    其他网站已经有很多关于SignalR的介绍了.这里不多介绍. 安装:Install-Package Microsoft.AspNet.SignalR -Version 1.1.4 参考自:http:/ ...

  2. Can't update table 'test_trigger' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

    [Err] 1442 - Can't update table 'test_trigger' in stored function/trigger because it is already used ...

  3. Codeforces Beta Round #10 D. LCIS

    题目链接: http://www.codeforces.com/contest/10/problem/D D. LCIS time limit per test:1 secondmemory limi ...

  4. 2-Highcharts曲线图之折线图

    示例图片,在网上下载一张图片如图:其中数据自定义 引入上节模版配置  在script标签中写代码:具体代码如下   信息将在代码中解释. 分析:“五省收益趋势”是标题: x坐标为[2011年-2016 ...

  5. Taxi Trip Time Winners' Interview: 3rd place, BlueTaxi

    Taxi Trip Time Winners' Interview: 3rd place, BlueTaxi This spring, Kaggle hosted two competitions w ...

  6. Unity3D脚本中文系列教程(二)

    原地址:http://dong2008hong.blog.163.com/blog/static/469688272014030347910/ Unity3D脚本中文系列教程(一) .根据名称或标签定 ...

  7. [转载]Spring Bean Configuration Inheritance

    转自: http://www.mkyong.com/spring/spring-bean-configuration-inheritance/ In Spring, the inheritance i ...

  8. HTML5入门4---HTML5 与 HTML4 同一网页的不同写法

    HTML4写法 css: body { font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana ...

  9. 2.Sprng-IoC-Java反射例子

    1.Car.java package com.jike.spring.chapter03.reflect; public class Car { private String brand; priva ...

  10. ApplePay扩大全球发卡行合作,“苹果税”撑不住了?

    5月11日Apple Pay全面登陆加拿大地区,更为重要的是,苹果终于在一些地区,开始和美国运通之外的发卡行达成了合作.这对于老是因为分账问题不愿意走出下一步的Apple Pay来说,已经是巨大的进步 ...