C# 使用OCCI 连接Oracle 数据库

Jun 07, 2016 pm 05:14 PM
オラクルデータベース

最近因需要研究了一下C#向Oracle数据库中插入数据的问题,通常情况下使用微软自带的组件ADO.NET来连接并操作数据库,这也是最简便

最近因需要研究了一下C#向Oracle数据库中插入数据的问题,通常情况下使用微软自带的组件ADO.NET来连接并操作数据库,这也是最简便的方式,用法也比较简单,即在程序开头加上using System.Data.OracleClient。另外就是使用Oracle提供的ODP.net,这需要下载ODAC,并在程序中引用Oracle.DataAccess.dll。

接下来写程序测试向数据库中插入记录的速度了,首先尝试使用ADO.net。

部分代码如下:

C#程序运行在Windows Server 2008 32位上,机器为Xeon E552O * 2,2.27Ghz,共16核内存12GB。Oracle 安装在RedHat AS4U4,cpu为AMD Opterron 275 * 2 ,2.2GHz,共4核心,,内存16GB,oracle 10g。
测试结果为33秒左右,每秒插入不到700条,之后也采用了绑定变量及调用存储过程等方法,插入速度也没有多大提高。

于是想到了用ODP.net,在网上查到说ODAC的版本必须与安装的oracle对应,虽然这个要求感觉不太灵活,因为实际的使用环境可能与开发环境不一致,到时还要更换ODAC的版本,且ODAC在官网上并不是能对应上所有的Oracle版本。在网上看到使用ODP.net插入速度可以达到数万条每秒,但我多次尝试时,都在运行时出现问题,根本无法运行成功。于是便放弃了。Oracle与MS的东西兼容性不强,或者说是Oracle本身向下兼容的能力弱,真是令人抓狂。

多方查找后发现了OCI这个东西,于是想到了使用封装了OCI的OCCI,这样眼前突然一亮。之后的思路就很清淅了,先用c++做一个dll,里面的函数是对OCCI的进行一步封装,再用c#调用这个dll就可以了。下面就是实现的具体过程了。

linux

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Oracle でテーブルがどのテーブルスペースに属しているかを確認する方法 Oracle でテーブルがどのテーブルスペースに属しているかを確認する方法 Jul 06, 2023 pm 01:31 PM

Oracle でテーブルがどのテーブルスペースに属しているかを確認する方法

PDO を使用して Oracle データベースに接続する方法 PDO を使用して Oracle データベースに接続する方法 Jul 28, 2023 pm 12:48 PM

PDO を使用して Oracle データベースに接続する方法

Oracleで重複データを1つだけ取得する方法 Oracleで重複データを1つだけ取得する方法 Jul 06, 2023 am 11:45 AM

Oracleで重複データを1つだけ取得する方法

PHP および Oracle データベースへのデータ インポートを実装する PHP および Oracle データベースへのデータ インポートを実装する Jul 12, 2023 pm 06:46 PM

PHP および Oracle データベースへのデータ インポートを実装する

PHP および Oracle データベース接続プールを効率的に使用する方法 PHP および Oracle データベース接続プールを効率的に使用する方法 Jul 12, 2023 am 10:07 AM

PHP および Oracle データベース接続プールを効率的に使用する方法

Oracle がストアド プロシージャにテーブルが存在するかどうかを判断する方法 Oracle がストアド プロシージャにテーブルが存在するかどうかを判断する方法 Jul 06, 2023 pm 01:20 PM

Oracle がストアド プロシージャにテーブルが存在するかどうかを判断する方法

OracleデータベースにはJDKが必要ですか? OracleデータベースにはJDKが必要ですか? Jun 05, 2023 pm 05:06 PM

OracleデータベースにはJDKが必要ですか?

php を使用して PDO を拡張し、Oracle データベースに接続する方法 php を使用して PDO を拡張し、Oracle データベースに接続する方法 Jul 29, 2023 pm 07:21 PM

php を使用して PDO を拡張し、Oracle データベースに接続する方法

See all articles