.NET访问Oracle的基础知识

如果你是在大公司工作的话,或者你给大的集团企业、政府、电信等做系统,大家肯能有机会接触到Oracle。虽然大家都说它是企业级的、超大数据量的数据库平台,我还是不怎么喜欢它,它有点过于特立独行,并且网上可以查到的资源太少,官网上的资料也是少点可怜。唉,可能人家太牛了吧。

那么如何在.NET中访问Oracle数据库呢?也许很多人马上会说:用OracleClient嘛,但是事实上采用System.Data.OracleClient并不能直接访问Oracle,如果你使用的话,系统会提示你:“版本低”“权限不足”等等奇怪的错误。是什么原因?,网上查了半天说是需要安装Oracle客户端,但是我在Oracle的官网上并没有找到所谓的免费oracleClient。关于权限、配置、连接字符串等等问题,足足困扰了我一天,唉真是令人汗颜呀(数据库都不知怎么连)。

下面将我做的最基础的连接Oracle服务器写下来,以防以后忘记:

操作系统:Windows server 2003 R2
数据库:Oracle 8i
客户端组件:Oracle 9i 客户端 精简版(从网上下载的,不需要修改什么注册表和环境变量)

连接字符串:
<add  name="ConnString" connectionString="Data Source= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT =1521)) ) (CONNECT_DATA = (SID = o8) (SERVER =o8) ));User ID=system;Password=manager" providerName="System.Data.OracleClient" />

当然,修改tnsnames.ora文件中的内容是同样的效果。


另外,Oracle 的数据类型和 SQL Server 相比,要“奇怪”一些

number: 数字类型,一般是 Number(M,N),M是有效数字,N是小数点后的位数(默认0),这个是按十进制说的。
nclob: “写作文”的字段,存储大量字符(Unicode)时用。
date: 日期类型,比较接近 SQL Server 的 datetime。

注:Oracle中没有 int,long等数据类型,也没有 bit 或者 bool 之类的类型,一般是 number(1) 代替的。


 

原文地址:https://www.cnblogs.com/zhaoguan_wang/p/1270316.html