`
backspace
  • 浏览: 133129 次
文章分类
社区版块
存档分类
最新评论

.net 程序远程连接 Oracle 数据库

 
阅读更多
 
这里需要注意的是 OleDbConnection 对 Clob 之类的 Oracle 9i 的数据类型不支持,必须使用 OracleConnection
参见 INFO: Limitations of Microsoft Oracle ODBC Driver and OLEDB Provider
如果用 OracleConnection 必须安装 .NET Managed Provider for Oracle
下载地址
.NET Managed Provider for Oracle
 

2.连接字符串

远程连接的连接字符串可以这样写

OleDbConnection 的连接字符串:

provider=MSDAORA;host=192.168.1.1;data source=MyTest;user id=system;password=xxx

provider = MSDAORA; 指明oledb 的提供者是oracle数据库

host 是远程 oracle 数据库所在服务器的IP地址,如果端口不是默认的 1521,还要加上一个 Port=xxxx;

data source 是要访问的 oracle 数据库的名字

user id 和 password 就不说了。

 

.NET Managed Provider for Oracle 的连接字符串:

server=192.168.1.1;data source=MyTest;user id=system;password=xxx

 

要能够成功运行上面代码,我们必须在代码运行的机器上安装 oracle 的客户端,否则会报

The Oracle(tm) client and networking components were not found 这个错误。

 

3. 主机防火墙设置

我的 Oracle 安装在 windows 2003 server 上,为了安全起见,必须设置防火墙

我在 windows 2003 下将 1521 端口开放,发现无法连接数据库,抓包看了一下,oracle 客户端在连接了 1521 后又去连接了一个随机的端口 1197

查了一下资料,oracle 的 network listener 只起一个中介作用,当客户连接它时,它根据配置寻找到相应的数据库实例进程,然后分配一个新的数据库连接,这个连接端口由network listener传递给客户机,此后客户机就不再和network listener打交道了,而是和 oracle.exe 这个进程打交道了。这个新的连接端口是不可预知的,因而会被防火墙阻止。

要解决这个问题,网上查到的办法是采用共享套接字,这个方法应该是一个比较通用的办法,如何做详见

在windows server 2003系统防火墙上开放Oracle服务端口 连接1521 TNS超时 

不过我偷了个懒,因为我只用 windows 的防火墙,windows 防火墙可以对某个进程开放所有端口。所以只要按下面图示的方式设置一下windows 防火墙,就可以访问了。

 

image

 

image

 

 

4. 客户端和服务器的字符集

插入中文时显示乱码,需要将客户端和服务器的NLS_LANG 都设置为

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

Windows 下

修改注册表

    HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0 下的NLS_LANG (9i)
    HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1 下的NLS_LANG (10g)

0
1
分享到:
评论

相关推荐

    .net远程连接Oracle数据库打开Oracle数据审计的文章与工具

    .net远程连接Oracle数据库打开Oracle审计的方法以及文章中使用的命令和详细截图,数据库管理工具等

    不用装Oracle客户端实现C#.NET连接远程Oracle数据库的一种方法

    不用装Oracle客户端、不用任何配置,实现C#.NET连接远程Oracle数据库的一种方法

    ASP.Net连接Oracle数据库的方法

    asp.net连接oracle数据库的方法,得到了如下代码。这段代码打开了MyTable表,并把操作员的名字列出。字段类型是OracleString。读取的时候用的是字段编号,我不知道怎么使用字段名来读取某字段的内容。

    unity2017远程连接Oracle数据库

    unity2017远程连接Oracle数据库,之前下了一个,但是文件有错误,现在改了;主要是两个类库要引用好,而且unity要切换成.net4.6;记得让数据库人员把连接字符串配好;

    oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法

    您可能感兴趣的文章:常用的Oracle doc命令(收藏)Oracle 多行记录合并/连接/聚合字符串的几种方法Oracle中字符串连接的实现方法php连接oracle数据库及查询数据的方法plsql连接oracle数据库报ora 12154错

    利用oracle客户端instantclient+navicat远程连接oracle数据库(含win32位+win64位)

    内部包含:win32位:oracle客户端instantclient(是11.0版本的)+navicate; win64位 :oracle客户端instantclient(是11.0版本的)+navicate; 下载安装后,再配置环境变量,navicate加载oci.dll即可;具体可以参考...

    c# asp.net 读取 连接oracle数据库源码(不用安装oracle客户端)

    本人亲自实现的demo 。实现不安装oracle客户端开发数据库,没有 oracle环境也可以远程访问oracle数据库的源码。

    .Net连接Oracle数据库的实现代码

    本文使用System.Data.OracleClient方式,这是MS提供的以ADO.NET方式访问Oracel的驱动;Oracle也有个Oracle Data Provider for .NET(ODP.NET)下篇再讨论。

    C#连Oracle 无需客户端

    再也不用担心没有oracle客户端不方便连接远程oracle数据库的问题了,希望能给大家带来帮助! 使用办法: 在工程中找到Oracle.ManagedDataAccess.dll文件,复制到你的工程的bin目录中 然后在项目中引用这个DLL文件...

    将oracle远程数据库导入本地数据库脚本

    这是将oracle远程数据库导入本地数据库的自动化脚本。只要简单的设置一些参数,就能够通过点击批处理脚本实现一键导入。具体可以参见http://blog.csdn.net/u010999809/article/details/75331006

    Oracle.ManagedDataAccess 最新版(4.122.21.1)

    此驱动对32位和64位oracle数据库具有很好的连接兼容性。 可采用无客户端远程连接oracle,或在本机使用连接。 使用此驱动可以完全替换掉微软提供的 System.Data.OracleClient, 也可以替换掉Oracle提供的 Oracle....

    Oracle数据库安装和配置以及组件

    Oracle数据库安装和配置以及组件: 包含一下文件 1.ASP.Net连接Oracle11g服务组件 2.Oracle11g服务器端配置步骤 3.Oracle11g客户端配置步骤 4.Oracle11g远程连接服务器配置 5.Oracle11g数据库创建详细操作步骤 6....

    oracle数据库迁移教程

    oracle数据库迁移,无需安装oracle客户端,无需远程要迁移的服务器,只需要使用Navicat Premium工具即可进行数据库迁移,文档记录了详细的迁移步骤,简单易懂,附上Navicat Premium破解版下载地址:...

    Oracle 数据库客户端

    如果不清楚远程数据库的ORACLE 语言,可以ssh或者telnet到远程机器,在命令界面输入,用命令行连接到数据库。 select * from nls_instance_parameters; 查看NLS_LANGUAGE 的值 NLS_LANGUAGE NLS_TERRITORY 4、下载并...

    asp.net知识库

    Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能...

    中美 IT 培训 C# Asp.net 全套笔记1

    Windows 应用程序、设计模式和Oracle数据库编程(40课时) 系统地讲授Windows应用程序的开发,学习观察者模式和Oracle数据库编程。 熟练开发基于数据库的Windows应用程序,掌握Oracle数据库编程。 C# 高级编程II ...

    中美 IT 培训 C# Asp.net 笔记3

    Windows 应用程序、设计模式和Oracle数据库编程(40课时) 系统地讲授Windows应用程序的开发,学习观察者模式和Oracle数据库编程。 熟练开发基于数据库的Windows应用程序,掌握Oracle数据库编程。 C# 高级编程II ...

    中美 IT 培训 C# Asp.net 笔记2

    Windows 应用程序、设计模式和Oracle数据库编程(40课时) 系统地讲授Windows应用程序的开发,学习观察者模式和Oracle数据库编程。 熟练开发基于数据库的Windows应用程序,掌握Oracle数据库编程。 C# 高级编程II ...

Global site tag (gtag.js) - Google Analytics