Asp.net连接Oracle数据库的各种奇葩合集

以前从来没用过Oracle,最近有个项目要求用Oracle数据库,让我脑细胞死了一大片,这里也是写些心得让.Net阵营的战士们一点参考,大神可无视。

先在Azure云服务器上安装Oracle 11g,装了32位的,这是好的避免后面很多兼容的问题,毕竟后面真的有一堆堆抓狂的问题。然后装了PL/Sql也是32位的,在Azure portal打开端口映射,防火墙也打开1521,如果你用默认端口的话。如果不清楚自己安装的oracle是32位还是64位,那么运行SqlPlus,在任务管理器看看有没有sqlPlus(32位),没有的话就是64位了。然后要建数据库,默认的是orcl,用这个也可以,自己也可以建别的名字的,我这里建了个MAM。会在C:\app\username\product\11.2.0\dbhome_2\NETWORK\ADMIN下面建立tnsnames.ora,这个就和后面的连接字符串很相关了,这个会搞死人的。

然后是建空间和建用户,这2步都在sqlPlus里面做,当然在plsql里面也可以。

create tablespace main_bbac logging datafile 'c:\oracle\oraData\main_bbac.DBF' size 512m;

这个是创建表空间的命令。用户我习惯在PLsql里面操作,用sys用户作为DBA登陆,在user文件夹右击添加用户,用户名密码随便取,Default tablespace选刚创建的,临时空间选Temp,Profile选default,然后点role privileges这个tab,给role选择dba,然后apply一下就建好了。

最后就把别人导出给你的数据库文件导入,这个用cmd比较好,可以看到过程,如果出错的话在plsql是闪一下就没了。记住这里用的是cmd不是sqlplus。

imp main_bbac/main_bbac@MAM file=D:\main_bbac.dmp full=y

可以看到把表试图什么的都导入了,后面要重新导入的话,登陆main_bbac用户,把函数,存储过程,表,视图全drop掉,如果还有trigger什么的也都drop掉,然后再导入。


数据库好了以后,在自己的开发机子上也要安装orcle client并且创建tnsnames,(其实后来笔者卸载了重装了都找不到tnsnames.ora这个文件了,vs里面还是可以连我就郁闷了,反正能用就行),在vs里面配置好oracle连接,复制连接字符串,自己把密码也加上去,就可以放到web.config里面使用了,这里用的是System.Data.OracleClient,这个已经被微软抛弃不更新了,貌似Oracle.ManagedDataAccess.Client会新一些,不过笔者最后没用上因为也报错。开发好了,自己本机调试完全没问题了,部署到服务器,连接不了,以为是要配置服务器的tnsnames,确实应该是要的,不过本机用的就是服务器那个配置,晕了,自己搞来搞去弄不好,写日志吧,一开始图方便用System.IO.File.AppendAllText写日志,我晕直接给我弄了个404错误,让我足足浪费了几小时把这个错查出来。后来尝试Oracle.ManagedDataAccess.Client,报ORA-12533: TNS: 非法的 ADDRESS 参数。还是回到System.Data.OracleClient,捕获错误发现

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

我已经用的是32位oracle了,那么就把我的网站改成x86的,在publish的时候选x86平台,并在iis的应用程序池的高级设置启用32位应用程序。再报

ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME

这是我之前自己摸索错误的时候自己把:端口号/SERVICE_NAME删掉了,加上去,终于好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值