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. 【FFT】OpenJ_POJ - C17H - Reverse K-th Problem

    对每个位置i处理出以其为结尾,且比a(i)大的数有j个的前缀个数,记成一个数组l:同理,处理出以其为开头,且比a(i)大的数有j个的后缀的个数,记成一个数组r. 整个序列中比a(i)大的数的个数的数组 ...

  2. 【Trie模板】HDU1251-统计难题

    [题意] n统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). [思路] 裸题,不过G++好像会超内存,C++就不会. #include<iostream> #include& ...

  3. javascript字符串与数组练习

    <html> <head> </head> <body> <script type="text/javascript"> ...

  4. trim()函数 mysql中的强大字符串过滤函数

    mysql中功能强大的trim()函数. 去除两边空格: mysql> select trim(' hello world '); +-----------------------+ | tri ...

  5. DockManager

    Devexpress----DockManager类似VS左右上下浮动栏停靠DockManager->Customize->DockPanel->NEW->Text='详细': ...

  6. JS的scrollIntoView学习

    scrollIntoView(alignWithTop)  滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素.如果alignWithTop为true,或者省略它,窗口会尽可能滚动到自身顶 ...

  7. 深入浅出RxJava就这一篇就够了

    前言: 第一次接触RxJava是在前不久,一个新Android项目的启动,在评估时选择了RxJava.RxJava是一个基于事件订阅的异步执行的一个类库.听起来有点复杂,其实是要你使用过一次,就会大概 ...

  8. fiddler在ios10.3系统抓包https失败原因解决

    一直是按照以往的设置抓包,设置代理ip,通过Safari下载安装证书,抓包https怎么显示证书无效呢?难道证书被apple设为黑名单了?google后发现,IOS10.3以后,安装了证书不是默认启用 ...

  9. 爬虫之多线程 多进程 自定义异步IO框架

    什么是进程? 进程是程序运行的实例,是系统进行资源分配和调度的一个独立单位,它包括独立的地址空间,资源以及1个或多个线程. 什么是线程? 线程可以看成是轻量级的进程,是CPU调度和分派的基本单位. 进 ...

  10. django 模板实现换行

    django中的模板并不能实现自动换行,遇到/n的话不会自动换行,毕竟/n是python里面的换行符,html怎么可能认识呢? 那如何实现在模板中换行呢 <p> {{ article.co ...