C#调用oracle 存储过程与调用Sql server存储过程类似,比较简单:直接给出示例:

  /// <summary>
/// 判断物料类型是不是总部管控
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
/// <summary>
public bool IsHeadquartersPart(string key)
{
isGroupPart = false;
OracleCommand cmd = new OracleCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = (OracleConnection)this.dbParam.Connection;
cmd.CommandText = "PLM_ECMS_CheckPartType"; OracleParameter[] parameters = {
new OracleParameter(":pid", OracleDbType.Varchar2),
new OracleParameter(":parttype", OracleDbType.Int32)
};
parameters[].Value = key;
parameters[].Direction = ParameterDirection.Input; parameters[].Direction = ParameterDirection.Output; for (int i = ; i < parameters.Length; i++)
{
cmd.Parameters.Add(parameters[i]);
} cmd.Prepare(); try
{
int k = ;
cmd.ExecuteNonQuery();
bool temp = int.TryParse(parameters[].Value.ToString(), out k);//返回代码;0表示成功,非0表示不成功 return temp ? (k == ? true : false) : false;
}
catch (Exception ex)
{
LogHelper.CreateErrorLogTxt("IsHeadquartersPart", ex.Message, cmd.CommandText);
return false;
}
finally
{
cmd.Dispose();
} }

存储过程如下:

 create or replace procedure PLM_ECMS_CheckPartType(pid  in nvarchar2,
parttype out integer) as intNum integer := 0;
rc_id varchar2(36) := '1dda4a6a-c633-4c63-bc1b-74efbb5b01e1'; --总部通用物料 begin --用在经纬权限判断JW 根据传入的物料id 来判断顶级物料是不是产品通用物料 如果是返回1 不是返回0
parttype := 0;
select count(1) into intNum from Plm_Ecms_Rule rc where rc.r_id = pid;
if intNum >= 1 then
--是规则
intNum := 0;
select count(1)
into intNum
from Plm_Ecms_Rclass r
where r.rc_id in
(select r.rc_id
from Plm_Ecms_Rclass r
start with r.rc_id = (select rc.rc_id
from Plm_Ecms_Rule rc
where rc.r_id = pid)
connect by r.rc_id = prior r.rc_pid)
and r.rc_id = rc_id;
if intNum >= 1 then
--是总部集中管控物料
parttype := 1;
end if;
--是类型
else
select count(1) into intNum
from Plm_Ecms_Rclass rc
where rc.rc_id in (select r.rc_id
from Plm_Ecms_Rclass r
start with r.rc_id = pid
connect by r.rc_id = prior r.rc_pid)
and rc.rc_id = '1dda4a6a-c633-4c63-bc1b-74efbb5b01e1'; if intNum >= 1 then
--是总部集中管控物料
parttype := 1;
end if; end if; end PLM_ECMS_CheckPartType;

C#调用 oracle存储过程的更多相关文章

  1. MyBatis调用Oracle存储过程

    MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...

  2. Java调用oracle存储过程通过游标返回临时表数据

    注:本文来源于 <  Java调用oracle存储过程通过游标返回临时表数据   > Java调用oracle存储过程通过游标返回临时表数据 项目开发过程中,不可避免的会用到存储过程返回结 ...

  3. C#调用Oracle存储过程

    C#调用Oracle存储过程的代码如下所示: using System; using System.Collections.Generic; using System.Collections.Obje ...

  4. 123 c#调用oracle存储过程返回数据集 --通过oracle存储过程返回数据集

    c#调用oracle存储过程返回数据集 2008-12-20 10:59:57|  分类: net|字号 订阅   CREATE OR REPLACE PACKAGE pkg_tableTypeIS  ...

  5. c#调用oracle存储过程返回数据集

    c#调用oracle存储过程返回数据集 2008-12-20 10:59:57|  分类: net|字号 订阅   CREATE OR REPLACE PACKAGE pkg_tableTypeIS  ...

  6. C#调用Oracle存储过程的方法

    C#调用Oracle存储过程的方法 准备: 环境:pl/sql+oracle9i+vs2008 创建表test: create table TEST(  ID      NUMBER,//编号  NA ...

  7. Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例

    Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13|  分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...

  8. python调用oracle存储过程

    oracle 存储过程 python调用oracle存储过程 -- 通过cx_Oracle连接 import cx_Oracle # 连接数据库 orcl_engine = 'scott/s123@x ...

  9. 用java 调用oracle存储过程总结

    SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例 https://www.jianshu.com/p/0ae6d9d66d61 用java调用oracle存储过程总结 //1.ca ...

随机推荐

  1. 【推导】计蒜客17119 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function

    题意:给你n,m,让你求cos(nx)的展开式的(cos(x))^m项的系数. 更一般的式子是这样的:. 队友的代码: #include<cstdio> #include<algor ...

  2. 【推导】【找规律】【二分】hdu6154 CaoHaha's staff

    题意:网格图.给你一个格点多边形的面积,问你最少用多少条边(可以是单位线段或单位对角线),围出这么大的图形. 如果我们得到了用n条边围出的图形的最大面积f(n),那么二分一下就是答案. n为偶数时,显 ...

  3. bzoj 3540: [Usaco2014 Open]Fair Photography

    3540: [Usaco2014 Open]Fair Photography Description FJ's N cows (2 <= N <= 100,000) are standin ...

  4. atomic与nonatomic的区别

    原子性(atomic):某操作具备整体性,也就是说,系统其他部分无法观察到其中间步骤所生成的临时结果,而只能看到操作前与操作后的结果,那么就称改操作就是“原子的”(atomic),或者说,该操作具备“ ...

  5. 怎么提高DB的效率

    主要从4方面,提高db的效率: 1,建立索引:(巴东) 2,多线程: 3,锁的范围(表级,行级...) 4,内存数据库

  6. 移动应用安全开发指南(Android)--Android组件和IPC

    概述 移动应用开发中,往往有跨进程通信的需求,方便地实现程序间的数据共享.Android提供了多种IPC通信的方式,给开发人员带来了便利,但如果选择或使用不当,就有可能发生各种各样的风险. 安全准则 ...

  7. 智普教育Python视频教程之入门基础篇,python笔记

    智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostna ...

  8. 17、percona-toolkit

    pt-ioprofile工具:1.percona-toolkit(在http://www.percona.com下载)2.安装该工具依赖的perl组件yum install perl-IO-Socke ...

  9. ylbtech-LanguageSamples-Indexers(索引器)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Indexers(索引器) 1.A,示例(Sample) 返回顶部 “索引器”示例 本示 ...

  10. Hibernate:SQL查询 addScalar()或addEntity()

      Hibernate除了支持HQL查询外,还支持原生SQL查询. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该 ...