EF是如何调用的存储过程的,本人也是翻遍了个大网站,查阅了很多资料。终于解决了遇到的问题。

第一步:创建存储过程,在这里我就不多说了,不是文章说的重点。

declare

                                       O_VOUCHER_ACT_DEDUCTIONS  integer;
O_FREE_NUMBER integer;
O_POINT_ACT_DEDUCTIONS integer;
O_PAYMENTMONEY integer;
O_ERROR_MESSAGE integer;
O_PAYNUM integer;
begin
p_cust_assets(10,710201,1,2,O_VOUCHER_ACT_DEDUCTIONS, O_FREE_NUMBER, O_POINT_ACT_DEDUCTIONS, O_PAYMENTMONEY, O_ERROR_MESSAGE, O_PAYNUM); dbms_output.put_line(O_VOUCHER_ACT_DEDUCTIONS);
dbms_output.put_line(O_FREE_NUMBER);
dbms_output.put_line(O_POINT_ACT_DEDUCTIONS);
dbms_output.put_line(O_PAYMENTMONEY);
dbms_output.put_line(O_ERROR_MESSAGE);
dbms_output.put_line(O_PAYNUM); end;

上面执行这个存储过程,是带有输出参数的。

第二步:调用存储过程,并输入参数

public void SelectToDBProcedure()
{
//参数第一种写法:
//OracleParameter vip_con_custom_id = new OracleParameter(":i_vip_con_custom_id", OracleDbType.Int32, 710201, ParameterDirection.Input); //第二种写法:
//OracleParameter[] parameter = new OracleParameter[10];
//parameter[0] = new OracleParameter(":i_vip_con_custom_id", OracleDbType.Int32, 710201, ParameterDirection.Input); //第三种写法:
OracleParameter guest_type = new OracleParameter(":i_guest_type", OracleDbType.Int32);
guest_type.Value = 10;
guest_type.Direction = ParameterDirection.Input; OracleParameter vip_con_custom_id = new OracleParameter(":i_vip_con_custom_id", OracleDbType.Int32);
vip_con_custom_id.Value = 710201;
vip_con_custom_id.Direction = ParameterDirection.Input; OracleParameter ishascustomer = new OracleParameter(":i_ishascustomer", OracleDbType.Int32);
ishascustomer.Value = 1;
ishascustomer.Direction = ParameterDirection.Input; OracleParameter accompany_num = new OracleParameter(":i_accompany_num", OracleDbType.Int32);
accompany_num.Value = 2;
accompany_num.Direction = ParameterDirection.Input; OracleParameter O_VOUCHER_ACT_DEDUCTIONS = new OracleParameter("O_VOUCHER_ACT_DEDUCTIONS",OracleDbType.Int32);
O_VOUCHER_ACT_DEDUCTIONS.OracleDbType = OracleDbType.Int32;
O_VOUCHER_ACT_DEDUCTIONS.Direction = ParameterDirection.Output; OracleParameter O_FREE_NUMBER = new OracleParameter("O_FREE_NUMBER", OracleDbType.Int32);
O_FREE_NUMBER.OracleDbType = OracleDbType.Int32;
O_FREE_NUMBER.Direction = ParameterDirection.Output; OracleParameter O_POINT_ACT_DEDUCTIONS = new OracleParameter("O_POINT_ACT_DEDUCTIONS", OracleDbType.Int32);
O_POINT_ACT_DEDUCTIONS.OracleDbType = OracleDbType.Int32;
O_POINT_ACT_DEDUCTIONS.Direction = ParameterDirection.Output; OracleParameter O_PAYMENTMONEY = new OracleParameter("O_PAYMENTMONEY", OracleDbType.Int32);
O_PAYMENTMONEY.OracleDbType = OracleDbType.Int32;
O_PAYMENTMONEY.Direction = ParameterDirection.Output; OracleParameter O_ERROR_MESSAGE = new OracleParameter("O_ERROR_MESSAGE", OracleDbType.Int32);
O_ERROR_MESSAGE.OracleDbType = OracleDbType.Int32;
O_ERROR_MESSAGE.Direction = ParameterDirection.Output; OracleParameter O_PAYNUM = new OracleParameter("O_PAYNUM", OracleDbType.Int32);
O_PAYNUM.OracleDbType = OracleDbType.Int32;
O_PAYNUM.Direction = ParameterDirection.Output; var query = _db.Database.SqlQuery<CustAssetsModel>("begin p_cust_assets (:i_guest_type,:i_vip_con_custom_id,:i_ishascustomer,:i_accompany_num,:O_VOUCHER_ACT_DEDUCTIONS,:O_FREE_NUMBER,:O_POINT_ACT_DEDUCTIONS,:O_PAYMENTMONEY,:O_ERROR_MESSAGE,:O_PAYNUM); end;",
guest_type, vip_con_custom_id, ishascustomer, accompany_num, O_VOUCHER_ACT_DEDUCTIONS, O_FREE_NUMBER, O_POINT_ACT_DEDUCTIONS, O_PAYMENTMONEY, O_ERROR_MESSAGE, O_PAYNUM); var result = query.ToList(); //打印存储过程 返回参数
Console.WriteLine("执行结果:{0}", O_PAYMENTMONEY.Value);
}

这样就OK了,可以输入返回参数结果值了。当然还有返回结果集的,还有带有多个结果集的存储过程;还处于摸索阶段,请大神指点,谢谢。

EF 调用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. C#调用 oracle存储过程

    C#调用oracle 存储过程与调用Sql server存储过程类似,比较简单:直接给出示例: /// <summary> /// 判断物料类型是不是总部管控 /// </summa ...

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

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

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

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

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

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

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

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

  9. python调用oracle存储过程

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

随机推荐

  1. python 初步认识Flask

    1.简介 flask 问题一:  访问百度的流程? a. 客户端: 发送请求报文,  请求行, 请求头, 请求体 b.服务端: 解析请求的报文, 解析域名, 进行路由匹配分发找到对应的视图函数, 打包 ...

  2. Debian&&ubuntu系安装MegaCli

    MegaCli这个命令可以用来监控raid状态.磁盘状况等,最近上了一批ubuntu系统跑openstack,问题是MegaCli在官网上只有rpm格式的包,没有deb的包,但是还是有办法解决的,rp ...

  3. JS-DOM Element方法和属性

    JS-DOM Element方法和属性 S-DOM Element方法和属性一,获取html元素1.getElementByID(id)通过对元素的ID访问,这是DOM一个基础的访问页面元素的方法.e ...

  4. 导数、多元函数、梯度、链式法则及 BP 神经网络

    一元函数的导数 对于函数\(y=f(x)\),导数可记做\(f'(x_0)\).\(y'|x=x_0\)或\(\frac{dy}{dx}|x=x_0 \).定义如下: \[f'(x_0) = \lim ...

  5. swift 3.0 正则表达式查找/替换字符

    1.什么是正则表达式 正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符 ...

  6. AngularJS入门之数据验证

    AngularJS自带了对表单或控件的输入数据进行验证的功能,对于Html5的基础控件均有内建的验证器,以下列举了所有支持的验证类型: email max maxlength min minlengt ...

  7. 用Python玩转数据第六周——高级数据处理与可视化

    1.matplotlib中有两个模块,pyplot和pylab import matplotlib.pyplot as plt  ///plt.plot(x,y) import pylab as pl ...

  8. jq03--基础函数

    我们继续学习jq的一些函数,包括向jq对象添加.删除CSS属性以及遍历DOM树. 1.获取.设置CSS类 addClass()--向被选元素添加1个或多个类属性 .importance{font-we ...

  9. Ubuntu14.04安装之后的一些配置

    不多说,直接上干货! 主要分为 一.root用户的开启和vim编辑器的安装 二.ssh的安装 三.静态ip的设置 四.中英切换文环境切换 一.root用户的开启和vim编辑器的安装 Ubuntu在默认 ...

  10. unity 图片 粉碎效果 破碎效果

    效果: 点击按钮后: 这些碎片具有物理碰撞效果,下面会有隐形的支柱垫着碎片,n秒后支柱消失,碎片落下 当然你也可以控制生成的碎片,让他们从下而上一块一块地落下 插件源码: https://github ...