从SqlServer转手Oracle的一些坑

为将SqlSugar ORM转制成OracleSugar ORM 本想一天搞定,凭着经验不看任何Oracle资料就直接强上了,可是从配置PLSQL和一些语法区别带来了不少坑让我进度放缓html

 

这个贴子对于身边没有Oracle朋友或第一次接触Oracle的朋友应该会有些帮助数据库

 

一、Oracle安装的目录不能有中文,不能有中文

若是是WIN10的用户在安装过程当中会抛出警告,不要管它直接强行安装,安装目录里面不能有中文重要的事情说三遍。 数组

 

二、下载安装服务

你要知道下址载什么:oracle

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.htmlide

下载1of2和2of2解压到同一个目录点击安装 ,安装过程很是简单可是要记住你设置的帐号和密码。测试

有几个服务默认会启动,通常都会启动。spa

 

三、配置客户端

PLSQL

PLSQL去CSDN下载有现成的.net

数据库   地址/服务  第一次我看了也不懂填只好去查资料3d

 

这样仍是登陆不了的,还要配置奇葩OCI server

目录地址:设置ORACLE的主目录

OCI地址: 若是主目下BIN文件的OCI设置了不能用,就要单独下载一个 OCI.dll,填写下载的OCI.DLL地址

 

OK这样就可以跑起来了

 

Navicat

下载:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 

Instant Client for Microsoft Windows (x64)

将它解压覆盖到 Navcat 安装目录下的  Navicat\Oracle\servers\ora

 

设置刚才覆盖的地址

OK能够跑起来了

 

四、表名的大写与小写

若是使用PLSQL可能不会遇到这种问题他会把你的表自动转成大写,假如你用Navcat建一个表为Student ,

你使用 select * from Student是查询不到这个表的,只能写成这样select * from "Student" 因此建表和字段须要改为大写 这样在查询的时候会很方便。

 

五、参数化的区别

MYSQL SQLITE SQLSERVER 均可以使用@参数化 ,而ORACLE只能使用 : 做为参数符号

 

坑了我最长时间的一个坑,就是参数化的顺序问题,这个问题一样不是不少人都会遇的到,由于我用的是最底层的Ado.net

select * from Student where name=:name and id=:id  

个人参数是  

 new OracleParamer[] { id=1,name="2" }(数组不是这么声名只是让大家看的更清楚些。)

 由于顺序不一样致使错误 因此必需要写成

 new OracleParamer[] { name="2" ,id=1}

 (通过各类排除法才找到了是顺序引的BUG,当时血差点吐出来了,难道Oracle和Access同样不智能)

解决这个问题的方法就是

将   SqlCommand.BindByName = true; 

 设置后顺序问题就解决了,解决问题很容易,难的是找不出问题点在哪儿。

六、默认Oracle只能查询一条语句

若是你写成  insert (xxx) values (xxxx);select xxx; 这样是会报错的,要加上begin end才能够执行多条 ,貌似 begin end不能用于查询只能是 update delete insert

 

七、Oracle和SQLServer不同没有identity都是经过序列实现的

建立一个序列,而后行入 insert (id) values (序列名.Nextval)   查询当前序列用  SELECT 序列名.currval from dual  至关于select @@identity

 

另外OracleSugar.ORM 已经转制成功了 花了些时间,在测试2天就会发布。

能够先了解下 SqlSugar ORM http://www.cnblogs.com/sunkaixuan/p/5654695.html

相关文章
相关标签/搜索