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. 输出图中顶点i到顶点j之间的所有简单路径

    简单路径(不包括环) DFS遍历以及回溯得到结果 void dfs(ALGraph graph, int v, int end, bool visit[], int path[], int cnt) ...

  2. fluentd 推送 mariadb audit log

    说明: mariadb audit log是 mariadb 的审计日志 目的是把日志拆分成 tab 键分隔的字段 直接附上 fluentd 配置文件 <system> log_level ...

  3. 00-python概述。

    人生苦短,我用Python. -发展历史: - 1989年,由Guido van Rossum开始开发, - 1991年,发布第一个公开发行版,第一个Python编译器(同时也是解释器)诞生. - 2 ...

  4. TestNG的常用注解

    @BeforeSuite:表示此注解的方法会在当前测试集合(Suite)中的任一测试用例开始运行之前执行 @AfterSuite:表示此注解的方法会在当前测试集合(Suite)中的所有测试程序运行结束 ...

  5. 大数据技术之_19_Spark学习_04_Spark Streaming 应用解析小结

    ========== Spark Streaming 是什么 ==========1.SPark Streaming 是 Spark 中一个组件,基于 Spark Core 进行构建,用于对流式进行处 ...

  6. [WiX]Component Rules 101

    原文:http://robmensching.com/blog/posts/2003/10/18/component-rules-101 I've been debating with myself ...

  7. 11、使用xamarin实现全屏播放rtmp之类的直播视频

    直播类的app大部分都是以rtmp hls播放为主.目前主流的app解决方案大部分是引入ijkplayer 这个是基于ffmpeg中的ffplayer实现的. 众所周知ffmpeg的解码能力是一流的. ...

  8. 使用Hive UDF和GeoIP库为Hive加入IP识别功能

    Hive是基于Hadoop的数据管理系统,作为分析人员的即时分析工具和ETL等工作的执行引擎,对于如今的大数据管理与分析.处理有着非常大的 意义.GeoIP是一套IP映射数据库,它定时更新,并且提供了 ...

  9. Win7下无法提交MapReduce Job到集群环境(转)

    一. 对hadoop eclipse plugin认识不足 http://zy19982004.iteye.com/blog/2024467曾经说到我最hadoop eclipse plugin作用的 ...

  10. 【数组】3Sum

    题目: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find al ...