如果你是在大公司工作的话,或者你给大的集团企业、政府、电信等做系统,大家肯能有机会接触到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) 代替的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?