C#中使用Oracle 存储过程笔记

 

C#中使用Oracle 存储过程笔记

1. 调用包含out/ in out类型参数的存储过程

存储过程:

CREATE OR REPLACE PROCEDURE "SITE_EDITSITEDATAEXIST"

(id_ number,

name_ varchar2,

httpRoot_ varchar2,

flag out integer )//out 只具备输出功能 in out 为输入/输出型

as

tempNum integer;

begin

flag:=0;

select count(id) into tempNum from WebSite_Info where Name = name_ and ID<>id_;

if tempNum > 0 then

flag:=3;

end if;

select count(id) into tempNum from WebSite_Info where HttpRoot = HttpRoot_ and ID<>id_;

if tempNum > 0 then

flag:=4;

end if;

commit;

end ;

/

调用方法:

OracleParameter retPar = new OracleParameter(channelId, OracleType.Number);

retPar.Direction = ParameterDirection.Output;//此处和存储过程中的类型匹配

//如果为in out 类型 此处应声//明InputOutput

OracleParameter[] param = new OracleParameter[ 2 ]

{

new OracleParameter(subjectId, OracleType.VarChar, 60)

};

param[ 0 ].Value = 0;

OracleHelper.ExecuteReader( OracleHelper.CONN_STRING_BASE, CommandType.StoredProcedure,

"site_EditSiteDataExist" ,param);

//有返回值时必须使用ExecuteReader方法

object val = param[ 3 ].Value;

return int.Parse( val.ToString() );

2. 存储过程返回记录集

存储过程必须写在包中,再调用.

包的写法:

CREATE OR REPLACE PACKAGE pkg_cms

AS

TYPE myrctype IS REF CURSOR;

PROCEDURE site_GetSiteData(Id_ number, p_rc OUT myrctype);

END pkg_cms;

/

CREATE OR REPLACE PACKAGE BODY pkg_cms

AS

PROCEDURE site_GetSiteData(Id_ number,p_rc OUT myrctype)

IS

BEGIN

OPEN p_rc FOR

Select Id, Name, Url, Folder_Name, Desccms, Char_Name,

DB_Address, DB_User, DB_Password, DB_Name, DB_ConnString, HttpRoot

From WebSite_Info

WHERE id=Id_;

END site_GetSiteData;

END pkg_cms;

/

调用:

OracleParameter[] param = new OracleParameter[ 2 ]

{

new OracleParameter(PARM_ID_, OracleType.Number, 8),

new OracleParameter("p_rc", OracleType.Cursor, 2000, ParameterDirection.Output, true, 0, 0, "",DataRowVersion.Default, Convert.DBNull)//此处为包体中声明的游标类型

};

param[ 0 ].Value = siteID;

return OracleHelper.ExecuteReader(OracleHelper.CONN_STRING_BASE, CommandType.StoredProcedure,"pkg_cms.site_GetSiteData", param);

//调用时候先写包名

3. Oracle存储过程中其它的方法

字符串操作

INSTR(STR,Maker)//取字符串中字符的位置

SUBStr(str,beginnum,len)//取子串

To_char()//将数字转到字符串

|| //拼串 相当于+

LENGTH(Oldword) //取字符串长度

时间类

to_date('dateStr','YYYY-Mi-DD')//字符串转成date”’YYYY-MM-DD’”

Date1-date2=天数

 

转载于:https://www.cnblogs.com/xiachufeng/archive/2010/07/26/1785625.html

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

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

相关文章

php网页生命周期函数,PHP的生命周期

PHP的生命周期php本身的生命周期是在命令行执行php test.php程序的生命周期(也就是cli)整个过程如下&#xff1a;执行php test.php调用每个扩展的模块初始化程序请求test.php程序调用每个扩展的请求初始化程序执行test.php程序调用每个扩展的请求关闭程序释放内存等清除工作调用…

为什么需要做归一化或者标准化

为什么需要做归一化或者标准化 一句话解释就是为了让我们求解loss最低值的过程中更加的平稳和缓&#xff0c;容易收敛。 具体解释可以看这里: 特征工程中的「归一化」有什么作用&#xff1f; - 忆臻的回答 - 知乎https://www.zhihu.com/question/20455227/answer/197897298 用我…

Windows on Device 项目实践 4 - 智能风扇制作

在前面的文章中&#xff0c;我们已经学习并且利用Intel Galileo开发板和Windows on Device制作了火焰报警器、感光灯和PWM调光灯。在这个项目中&#xff0c;我们来利用温度传感器和直流电机&#xff0c;完成一个简单的智能风扇的制作。 1. 温度传感器 LM35 是很常用且易用的温度…

Linux系统信息查看命令大全

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所…

php接口异常,api接口异常怎么办

异常&#xff1a;在程序开发过程中出现的不正常情况&#xff0c;就是异常。比如除数是0&#xff0c;参数为null&#xff0c;调用参数的成员变量或者方法&#xff0c;数组下标越界。异常分为两大类型&#xff1a;(1)Exception&#xff1a;程序员可以解决的&#xff1a;空指针&am…

并发编程5-同步器

Synchronizer 控制多个线程的流程&#xff0c;比如线程执行到某一个点的时候是等待还是通过。 JDK中自带了信号量&#xff0c;关卡&#xff0c;闭锁闭锁CoutDownLatch 达到最终状态前是关闭的&#xff0c;所有线程在此阻塞&#xff0c; 达到最终状态后开放&#xff0c;并且不可…

RE validation in Java EE

pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象&#xff0c;你必须首先调用其公共静态编译方法&#xff0c;它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。 Pattern类中有两个最常用的方法&#xff1…

Apache Rewrite 规则详解

1、Rewrite规则简介&#xff1a; Rewirte主要的功能就是实现URL的跳转&#xff0c;它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess) 两种方式。如果要想用到rewrite模块&#xff0c;必须先安装或加载rewrite模块。方法有两种一种是编译apach…

php源码编程,10个小技巧让你做好php源码编程

PHP是目前使用最广泛的网站编程语言&#xff0c;也是今后发展的一大趋势。有很多站长或多或少掌握一些php编程方法&#xff0c;下面小编就介绍十点实用的php编码技巧。1、cho比print 快&#xff0c;并且使用echo的多重参数(译注&#xff1a;指用逗号而不是句点)代替字符串连接&…

iPhone与Android手机 各个型号的UserAgent

微信端模拟&#xff1a;Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380■iPhone●iOSMozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/…

动态调用WCF服务[转]

原文地址&#xff1a;http://blog.csdn.net/castlooo/archive/2010/05/06/5562619.aspx客户端调用wcf &#xff0c;有时需要动态的调用服务端的WCF中的方法&#xff0c;本方法&#xff0c;反射wcf 的接口&#xff0c;动态调用接口中的方法。 主要为&#xff0c;动态绑定&#x…

java 正规 忽略,java-正则表达式查找变量并忽略方法

我正在尝试编写一个正则表达式,以查找给定一段JavaScript代码中的所有变量(并且只有变量,完全忽略方法).实际的代码(执行regex的代码)是用Java编写的.现在,我有这样的事情&#xff1a;Matcher matcherPattern.compile(".*?([a-z]\w*?).*?").matcher(string);while…

【吐槽】博客园新的原创文章在搜索引擎的排名不及转载的站点

最近写博客比较多&#xff0c;但发现文章被一些网站转载后&#xff0c;排名比博客园的链接还要高&#xff0c;有些搜索引擎甚至连博客园的链接都没有&#xff0c;坑爹&#xff0c;坑爹。。。 以前博客园的网友也遇到过类似的情况&#xff0c;也分享过一些防转载的经验&#xff…

Qt之程序发布以及打包成exe安装包

一、简述 Qt项目开发完成之后&#xff0c;需要打包发布程序&#xff0c;而因为用户电脑上没有Qt配置环境&#xff0c;所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中&#xff0c;然后再用 Inno Setup打包工具 打包成一个exe安装包&#xff0c;就可以发布了…

把ASP应用中的Session传递给asp.net应用

ASP.NET APPLICATION要使用原来的ASP用户系统&#xff0c;于是问题出现了&#xff0c;ASP APPLICATION怎样才能让用户登录的状态及用户信息在ASP.NET中依然有效呢。于是我们考虑用构造FORM来自动提交传递ASP应用中的Session变量。例子如下ASP应用URL为http://127.0.0.1/asp/&am…

linux下生成key

linux下生成key 使用public/private key让putty(ssh)自动登录&#xff08;以及linux上使用密钥做ssh自动登陆&#xff09; 方法一&#xff1a;使用puttygen.exe 第一步&#xff1a;生成密匙 运行puttygen.exe&#xff0c;选择需要的密匙类型和长度&#xff0c;使用默认的SSH2(R…

php获取字符串扩展,PHP7扩展开发之字符串处理

标签&#xff1a;本文和大家分享的主要是PHP7扩展开发中字符串的处理相关知识&#xff0c;希望通过本文的分享能帮助大家更好的学习php。这次&#xff0c;我们来看看字符串在PHP扩展里面如何处理。示例代码如下&#xff1a;$len strlen($prefix);$substr substr($string, 0, …

使用Nginx+WordPress搭建个人网站

背景 很多研究技术的朋友喜欢写博客。如果希望搭建一个完全属于自己的网站&#xff0c;也并不困难。这里简要分享一下我搭建这个博客网站的经验。 关键步骤 购买服务器、域名、DNS云解析服务网站备案&#xff08;可选&#xff09;安装NginxWordPressMySQLPHP配置WordPress运行网…

UNION ALL returning wrong results?

有应用人员反映某套Linux上的11.2.0.1数据库系统中出现了UNION ALL后返回的结果集不正确的问题,我们具体分析下出现问题的其中一条语句: SELECT MTL_SECONDARY_INVENTORIES.SECONDARY_INVENTORY_NAME,MTL_SECONDARY_INVENTORIES.ORGANIZATION_ID,MTL_SECONDARY_INVENTORIES.DES…

android jni java类型与c语言类型互换

1.java String转换 C str char* Jstring2CStr(JNIEnv* env, jstring jstr) {char* rtn NULL;jclass clsstring (*env)->FindClass(env,"java/lang/String");jstring strencode (*env)->NewStringUTF(env,"GB2312");jme…