- 浏览: 1763037 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (520)
- Oracle (10)
- Oracle错误集 (8)
- Oracle安装升级 (15)
- Oracle日常管理 (51)
- Oracle字符集 (7)
- Oracle备份恢复 (24)
- Oracle优化 (4)
- Oracle编程 (52)
- Oracle导入导出 (19)
- Oracle体系结构 (15)
- Oracle网络 (2)
- Oracle安全 (2)
- Oracle权限 (3)
- Oracle数据字典和性能视图 (2)
- Oracle常用地址 (5)
- SQLPLUS专栏 (7)
- SqlServer (13)
- SqlServer2005编程 (27)
- SqlServer2005管理 (15)
- MySQL (20)
- Dorado应用 (1)
- C# (24)
- Arcgis Server开发 (20)
- ArcSDE技术 (19)
- UML学习 (2)
- 设计模式 (2)
- JAVA EE (4)
- JavaScript (3)
- OFBIZ (27)
- JAVA WEB开发 (22)
- Linux&Unix (34)
- SHELL编程 (14)
- C语言 (11)
- 网络协议 (14)
- FREEMARKER (2)
- GROOVY (2)
- JAVA语言 (3)
- 防火墙 (0)
- PHP (2)
- Apache (2)
- Loader Runner (1)
- Nginx (3)
- 数据库理论 (2)
- maven (1)
最新评论
-
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
pg_guo:
感谢
oracle中查看用户权限 -
xu234234:
5、MapResourceManager控件中添加了两个服务, ...
北京ArcGis Server应用基础培训笔记1
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();
这里没什么可说的类。。只是定义的数据类型是游标,类型是OUTPUT,另外没什么了。。
发表评论
-
C#正则表达式小结
2008-09-16 15:27 1623地址: http://www.cnblogs.com/m ... -
生成实体类的codesmith模版
2008-07-15 16:35 3184<%@ CodeTemplate Language=&q ... -
数据库开发个人总结(ADO.NET小结)(转)
2008-06-16 11:41 1998一.用SqlConnection连接SQL Server 1. ... -
ADO.NET—读书笔记系列
2008-06-16 11:37 1994ADO.NET概述 一、。NET数据提供程序 ... -
ADO.NET—DataHelper(转)
2008-06-16 11:24 3307using System; using System.Data ... -
ADO.NET—Asp.net 用DataSet对象更新数据(SqlDataAdapter)
2008-06-16 10:42 3561大家知道,DataSet保存的 ... -
一个简单的在程序中构造DataTable
2008-06-16 09:50 2441DataTable dt = new Data ... -
C# 中的委托和事件
2008-06-11 14:53 1123http://www.cnblogs.com/jimmyzha ... -
c#接口和抽象类的区别
2008-06-11 13:58 2607大家都容易把这两者搞 ... -
C#学习之接口
2008-05-26 16:17 1585什么是接口?其实,接 ... -
谈谈C#中的接口
2008-05-26 15:48 1296http://www.cnblogs.com/sifang20 ... -
C#构造函数
2008-05-26 15:27 4476一、C#构造函数?Construct,Function 构造函 ... -
关于构造函数及参数执行顺序说明(c#)
2008-05-26 15:08 3674以前自己对这方面的内容一直比较模糊,只是知道一个大概的顺序,具 ... -
C#继承小结
2008-05-26 14:48 16791、实例化父类时,可以使用new子类,执行构造函数顺序为:先执 ... -
C#修饰符
2008-05-26 14:30 2003符用于限定类型以及类型成员的申明,c#中有13种修饰符,按功能 ... -
C#命名规范
2008-05-26 13:49 2108注记 : Pascal 大小写形式 ... -
C#中处理xml文档
2008-05-26 11:53 1979C#下处理xml是通过XML.NET API类来实现的. XM ... -
在C#使用XML注释
2008-05-26 11:36 2674简介 大多数程序员可能都听说过Java自带的一个工具JavaD ... -
Visual C# 编译器 CSC.EXE 参数详解
2008-05-26 11:29 4717Visual C#是微软公司推出的新一代程序开发语言,Visu ... -
C# 语句-循环语句
2008-05-26 11:08 3276本文将介绍如何使用C#控制语句中的循环语句,本文目的如下: 1 ...
相关推荐
本文将详细讲解如何在C#中使用自定义列表(List)作为参数调用Oracle存储过程,以及实现这一功能的关键技术和注意事项。 首先,我们需要了解Oracle数据库中的PL/SQL类型,例如VARCAR2、NUMBER等,它们对应于C#中的...
C#中调用ORACLE的PACKAGE里方法和存储过程的应用 在实际开发中,C#与ORACLE数据库的集成是一个非常重要的 topic,本文将详细介绍如何在C#中调用ORACLE的PACKAGE里的方法和存储过程。 首先,我们需要在ORACLE数据库...
Ref Cursor是PL/SQL中的一个重要概念,它允许存储过程返回动态查询的结果。此外,PL/SQL中创建序列的方式是`CREATE SEQUENCE`,不同于T-SQL中的`identity()`。 Package的编写通常包括两部分:规范(Specification)...
总之,C#调用Oracle存储过程涉及到创建存储过程、设置参数模式、在C#中构建OracleCommand对象以及处理输入输出参数。了解这些概念和步骤对于任何进行数据库操作的软件开发者来说都是至关重要的。
在软件开发领域,尤其是涉及到数据库交互时,C# 调用 Oracle 存储过程是一项常见的任务。这个实例提供了一个简单的方法来实现这一操作。首先,我们从 Oracle 数据库的角度出发,了解如何创建一个存储过程。 1. 创建...
在C#中调用Oracle存储过程,我们需要使用Oracle提供的ODP.NET(Oracle Data Provider for .NET)库,它可以提供全面的数据访问功能,包括执行存储过程。以下是一些关键知识点: 1. **OracleConnection对象**:这是...
5. **处理结果**:如果存储过程返回结果集,可以使用OracleDataReader遍历数据。如果是输出参数,可以通过OracleParameter的Value属性获取其值。 6. **关闭连接**:执行完操作后,记得关闭数据库连接,以释放资源。...
本文实例讲述了C#调用Oracle存储过程的方法。分享给大家供大家参考。具体实现方法如下: Oracle数据库代码如下: 代码如下:create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,...
你可以通过`OracleCommand`的`ExecuteNonQuery`、`ExecuteScalar`和`ExecuteReader`方法来调用这些存储过程。 总的来说,Oracle.ManagedDataAccess.dll为C#开发者提供了一种便捷、高效且跨平台的方式来访问Oracle...
`sql`是执行的SQL查询,`DataTable`对象将存储查询结果。`Fill`方法用于将数据库中的数据填充到`DataTable`中。 在实际开发中,为确保安全性和性能,应使用参数化查询防止SQL注入,以及适当地关闭和释放数据库连接...
`ConnForOracle` 类主要实现了对 Oracle 数据库的基本操作,包括但不限于连接数据库、执行 SQL 语句以及返回结果集等功能。通过此类可以有效地简化数据库操作代码,并提高开发效率。 #### 二、基本属性与构造函数 ...
要实现C#调用oci.dll,你需要做以下几步: 1. **配置环境**:确保你有Oracle Instant Client,这是一个轻量级的Oracle客户端,包含oci.dll和其他必要的文件。你可以从Oracle官方网站下载对应操作系统的版本,并将其...
### Oracle+C# 数据库开发实例 #### Oracle存储过程创建与测试 ...以上就是使用C#调用Oracle存储过程的一个简单示例。这种方法可以极大地提高数据库操作的安全性和效率,特别是在处理复杂查询和大量数据时尤为明显。
总的来说,使用.NET的`System.Data.OracleClient`命名空间,我们可以方便地在C#应用程序中调用Oracle数据库的存储过程和函数,实现数据的增删改查以及其他复杂业务逻辑。需要注意的是,Oracle已经停止对`System.Data...
下面是一个简化的例子,展示了如何在C#中定义并调用Oracle OCI的函数: ```csharp using System; using System.Runtime.InteropServices; public class OracleOci { [DllImport("oci.dll", CharSet = CharSet....
函数内部使用了一个循环来拆分字符串,每次循环都会将拆分后的结果返回给调用者。 最后,我们可以使用这个函数来拆分字符串。例如,我们可以使用以下 SQL 语句来拆分一个字符串: ``` SELECT * FROM TABLE(f_split...
总之,C#封装Oracle OCI驱动是一项涉及原生库调用和P/Invoke技术的工作,它可以为应用程序提供更底层的数据库访问能力。通过良好的封装,我们可以创建一个易用且高效的C#客户端,方便在各种项目中直接操作Oracle...
- 可以定义一个函数类型的存储过程,通过`RETURN`语句返回一个值。 - 也可以使用OUT参数来传递结果。 6. **异常处理** - PL/SQL中的`EXCEPTION`部分用于捕获和处理运行时错误。 - 自定义异常可以提高程序的健壮...
- 存储过程类似于 Java 中的方法或 C# 中的函数,可以接受输入参数、返回输出参数以及返回状态值。 2. **优点**: - **性能优化**:存储过程是预编译的,因此每次执行时不需要重新编译,从而提高了执行速度。 - ...