易截截图软件、单文件、免安装、纯绿色、仅160KB

使用 ADO.NET 访问 Oracle 9i 存储过程

本文讨论了如何使用 ADO.NET 访问 Oracle 存储过程(称为 SQL 编程块)和函数(返回单个值的编程块)。
您可以使用以下托管数据提供程序连接到 Oracle 数据库:Microsoft .NET Oracle 提供程序、OLE DB .NET 提供程序、ODBC .NET 数据提供程序以及 Oracle 的 ODP.NET 提供程序。本文使用用于 Oracle 的 Microsoft?.NET 框架数据提供程序。使用 Oracle ODP.NET 数据提供程序或用于 OLE DB 的 Microsoft .NET 框架数据提供程序时可使用不同的功能。
Oracle .NET 数据提供程序随 .NET 框架 1.1 一起提供。如果您使用的是 .NET 框架 1.0,您将需要下载 .NET Managed Provider for Oracle。无论是哪个版本,数据提供程序类都位于 System.Data.OracleClient 命名空间中。
概述
PL/SQL 是 SQL 的 Oracle 实现。它与 Microsoft?SQL Server? 所使用的 T-SQL 类似,但也有一些不同之处,本文稍后对此进行了详细讨论。与 T-SQL 一样,PL/SQL 扩展了标准 SQL。PL/SQL 用于定义命名编程块,如存储过程、函数和触发器。
返回页首

可使用 System.Data.OracleClient 命名空间中类的子集来执行 Oracle 存储过程和函数。下表对这些类进行了说明:

说明
OracleCommand
针对 Oracle 数据库执行的存储过程的 SQL 语句。
OracleConnection
打开的数据库连接。
OracleParameter
OracleCommand 的参数,也可能是它到 DataColumn 的映射。
OracleParameterCollection
OracleParameter 对象的集合。
OracleType
Oracle 数据类型和结构的枚举。
返回页首
执行存储过程
执行 Oracle 存储过程与执行 SQL Server 存储过程类似。下面的步骤说明了如何执行 Oracle 存储过程和检索它返回的结果。
在 HR 架构中创建一个名为 COUNT_JOB_HISTORY 的存储过程,以计算 JOB_HISTORY 表中的记录数。
CREATE OR new PROCEDURE COUNT_JOB_HISTORY
(
reccount OUT NUMBER
)
IS
BEGIN
SELECT COUNT(*) INTO reccount
from JOB_HISTORY;
END COUNT_JOB_HISTORY;
HR 架构是默认 Oracle 安装中包含的一个示例。
将 System.Data.OracleClient.dll(用于 Oracle 的 Microsoft .NET 框架数据提供程序)的引用添加到项目中。
使用 using 指令导入 OracleClient 类中的类型。
using System.Data.OracleClient;
创建一个 OracleConnection 对象。
OracleConnection conn = new OracleConnection("Data Source=oracledb;
User I


相关文档:

[Oracle]高效的PL/SQL程序设计(六)

本系列文章导航
[Oracle]高效的PL/SQL程序设计(一)--伪列ROWNUM使用技巧
[Oracle]高效的PL/SQL程序设计(二)--标量子查询
[Oracle]高效的PL/SQL程序设计(三)--Package的优点
[Oracle]高效的PL/SQL程序设计(四)--批量处理
[Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
[Oracle]高效的PL/SQL程序设计(六)- ......

MySQL与Oracle数据类型转换


MySQL Data Type
Oracle Data Type
BIGINT
NUMBER(19, 0)
BIT
RAW
BLOB
BLOB, RAW
CHAR
CHAR
DATE
DATE
DATETIME
DATE
DECIMAL
FLOAT (24)
DOUBLE
FLOAT (24)
DOUBLE PRECISION
FLOAT (24)
ENUM
VARCHAR2
FLOAT
FLOAT
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
LONGBLOB
BLOB, RAW
LONGTEX ......

SQLServer和Oracle的常用函数对比

SQLServer和Oracle的常用函数对比
  1.绝对值
  S:select abs(-1) value
  O:select abs(-1) value from dual
  2.取整(大)
  S:select ceiling(-1.001) value
  O:select ceil(-1.001) value from dual
  3.取整(小)
  S:select floor(-1.001) value
  O:select floor(-1.001) valu ......

oracle与sqlserver执行count(*)返回的结果兼容

由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1);    //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
  Object o = rs1.getObject(1);
 &nbs ......

sqlserver:openrowset / oracle:table/view@dblink名

只是sqlserver 提供的远程数据访问函数;  在本地sqlserver 中取外部数据源数据时候可用;
对连接本地 oracle 操作远程 oracle 不能使用; 测试: pl/sql 中使用:
select * from openrowset(................); 无效!!!!!!!!!!!!!!
在oracle 中需要访问远程数据,需要建立一连接远程oracle 的 dblink ;
再用如下方 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号