C#调用ORACLE存储过程返回结果集及函数

ORACLE段:
首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集。
1:建立PACKAGE:
CREATE OR REPLACE package SCOTT.pk_wt
is
type mytype is ref cursor;
procedure p_wt(mycs out mytype);
function f_get(str in varchar2)
return varchar2;
end;
/
说明:其实PACKAGE只是个声明罢了。我们在这里定义了一个存储过程返回结集和一个函数,返回字符串。

2:建立PACKAGE BODY:
CREATE OR REPLACE package BODY SCOTT.pk_wt
is
procedure p_wt(mycs out mytype)
is
begin
open mycs for select * from test;
end p_wt;

function f_get(str varchar2)
return varchar2
is
str_temp varchar2(100) := 'good luck!';
begin
str_temp := str_temp || str;
return str_temp;
end f_get;

end pk_wt;
/
说明:这里建立PACKAGE BODY是具体的说明和使用,将采用什么方式实现。。

C#段:
在C#中代码将分为两部分,一部分是使用函数,另外一部分是使用结果集。
定义一个连接,从WEBCONFIG里去取得:
private OracleConnection orcn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["scott"]);
C#调用ORACLE函数:
OracleCommand cmd=new OracleCommand("pk_wt.f_get",orcn);
   cmd.CommandType=CommandType.StoredProcedure;
   OracleParameter p1=new OracleParameter("str",OracleType.VarChar,10);
   p1.Direction=System.Data.ParameterDirection.Input;
   p1.Value=this.TextBox1.Text;
   OracleParameter p2=new OracleParameter("result",OracleType.VarChar,100);
   p2.Direction=System.Data.ParameterDirection.ReturnValue;
   cmd.Parameters.Add(p1);
   cmd.Parameters.Add(p2);
   orcn.Open();
   cmd.ExecuteNonQuery();
   orcn.Close();
   this.Button_function.Text=p2.Value.ToString();
其中RESULT是系统自定义的函数返回变量,特别要注意的是,函数的参数的返回类型要指定,另外就是COMMAND类型也需要指定,另外和一般的存储过程没什么差别。

C#调用ORACLE返回结果集:
OracleCommand cmd=new OracleCommand("pk_wt.p_wt",orcn);
   cmd.CommandType=CommandType.StoredProcedure;
   OracleParameter p1=new OracleParameter("mycs",OracleType.Cursor);
   p1.Direction=System.Data.ParameterDirection.Output;
   cmd.Parameters.Add(p1);
   OracleDataAdapter da=new OracleDataAdapter(cmd);
   DataSet ds=new DataSet();
   da.Fill(ds,"test");
   this.DataGrid1.DataSource=ds;
   this.DataGrid1.DataBind();

转载于:https://www.cnblogs.com/builderman/articles/1224173.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tab切换

(function(){var tit $("#tab a"),con $("#tcontent>div"),cur cur;tit.mousemove(function(){var index tit.index(this);$(this).addClass(cur).siblings().removeClass(cur);con.eq(index).show().siblings().hide();}); })();原生js的tab切换 v…

组件传参

props on emit自定义方法 ref slot 事件总线 vuex (详细等有空写,先记着) es6新特性转载于:https://www.cnblogs.com/mokani/p/10520714.html

cocos2dx java 调用lua_cocos2dx之C++调用Lua

1.引入头文件#include "cocos2d.h"#include "CCLuaEngine.h"USING_NS_CC;using namespace std;extern "C"{#include "lua.h"#include "lualib.h"#include "lauxlib.h"}2导入Lua文件如果是cocos2dx的Lu…

Mysql 监控小脚本

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一…

93号涨0.86元售6.2元/升 20日油价正式上调

93号涨0.86元售6.2元/升 20日油价正式上调 据悉,自6月20日起汽油、柴油价格每吨提高1000元,航空煤油价格每吨提高1500元。 上调后全国汽油、柴油平均零售价分别为:97号汽油6.6元/升,93号汽油6.2元/升,90号汽油5.8元/升…

eclipse 新建java无scr_解决eclipse中没有js代码提示的问题

自学js,发现eclipse中不管js文件、html文件、jsp文件没有都没js代码的提示,对于js代码也不报错,有时候就因为单词敲错却查了很久没查出来,很烦很难受。在网上找了很多方法,都没有解决,特别是有个在javascri…

C# 互通操作 (二)基础知识1

[DllImport("user32.dll", EntryPoint "MessageBox")] public static extern int DebugWin(int hwnd, string content, string lpcaption, int wType); 讲解下参数的含义EntryPoint 是指向Dll中的一个方法当设定了EntryPoint的指向后 自己定义的方法名就不…

python 细枝末节

1. print 自动换行 看区别 >>> for i in range(4): ... print i ... 0 1 2 3 >>> for i in range(4): ... print i, ... 0 1 2 3 第一个自动回车;第二个没有自动回车,空格隔开。 结论:print会在行尾自动加回车。…

美女MVP专访

博客园专访:中国最美丽的MVP请大家在专访页面中发表评论。制作花絮:在测试专访页面时,不小心发布到了新闻频道,立即引来了园友的热情评论。 推荐小组:转载于:https://www.cnblogs.com/cmt/archive/2008/07/14/1241994.html

鲁班学院java高级架构师_鲁班学院三期java架构师

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。架构描述语言(ADL)用于描述软件的体系架构。现在已有多种架构描述语言,如Wright(由卡内基梅隆大学开发),Acme(由卡内基梅…

java jconsole rmi 连接不上

今天在虚拟机开放远程jconsole连接,设置了jmxrote的参数 JAVA_OPTIONS"${JAVA_OPTIONS} -Dcom.sun.management.jmxremote"JAVA_OPTIONS"${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.port9000"JAVA_OPTIONS"${JAVA_OPTIONS} -Dcom.su…

ASP 判断Session变量是否存在的4种方法

如果去读取没有初始化的Session变量,将得到Empty值(空值)。所以可以利用该值来判断Session变量是否已经初始化。加入我们要判断名为sesName的变量是否已经建立,我们可以用以下4种方法:1 If Session("sesName") "" Then …

SRE(Simple Rule Engine) Document

What is a rule engine?什么是规则引擎?A Rule Engine is a software system that contains rules on behalf of another system. Many different kinds of rules can be contained in a rules engine: business, legal, company policy, navigation, computationa…

字符串匹配,KMP算法

KMP的详解见&#xff1a;https://segmentfault.com/a/1190000008575379 主要难点在于Next数组的理解&#xff0c;KMP是不需要回溯的匹配算法。 1 #include<iostream>2 #include<string>3 #include<vector>4 #define MAXSIZE 1005 using namespace std;6 /*为…

{}企业如何才能实现多方位网络营销

现在很多企业都在进行网络营销,但是网络营销取得显着效果的并不多.其中有各种原因.但是很多在网络营销方式取得显着效果的企业却都有个共同的特点,尝试了多种营销方式做多方位的网络营销.在现今网络平台多样化,网络营销竞争激烈的形式下,单一的营销模式确实无法取得好的效果,多…

关于23种设计模式的有趣见解

创建型模式 1、FACTORY —追MM少不了请吃饭了&#xff0c;麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西&#xff0c;虽然口味有所不同&#xff0c;但不管你带MM去麦当劳或肯德基&#xff0c;只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式…

java oracle 连接字符串函数_通过shell来比较oracle和java中的字符串使用

这些准备工作齐了之后&#xff0c;我们来从Java中的字符串使用入手来比较一下oracle中对于字符串的处理。java中有如下的一些函数&#xff0c;我会依次来做比较。public char charAt(int index)返回字符串中第index个字符&#xff1b;oracle中可以使用substr来简单实现&#xf…

Java私有构造函数不能阻止继承

下面是一个调用已经私有化的单列的函数的列子. 这里用了静态内部类&#xff0c;关键就是静态内部类可以访问外部类的私有构造函数。 这种算是变种继承吧。前提是可以在原来的单列类里添加代码。 class Single { private Single(){ System.out.println(&q…

Flask + vue 前后端分离的 二手书App

一个Flask vue 前后端分离的 二手书App 效果展示&#xff1a; https://blog.csdn.net/qq_42239520/article/details/88534955 所用技术清单 项目地址&#xff1a;项目地址 vue代码地址&#xff1a;vue代码地址 项目部分过程笔记&#xff1a; 后台&#xff1a; 项目结构 Second…

Mac OS X Glut build instructions

Mac OS X Glut build instructions(在Mac上用glut库编写OpenGL程序) Wentao Sun, Autodesk, Inc. 1. Building GLUT apps under Mac OS X There are only a few modifications you need to make to the robot.c sample to get it compiled on your Mac. These instruction…