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

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

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

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

2、下载安装服务

你要知道下址载什么:

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

下载1of2和2of2解压到同一个目录点击安装 ,安装过程非常简单但是要记住你设置的账号和密码。

有几个服务默认会启动,一般都会启动。

3、配置客户端

PLSQL

PLSQL去CSDN下载有现成的

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

这样还是登录不了的,还要配置奇葩OCI

目录地址:设置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可以跑起来了

4、表名的大写与小写

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

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

5、参数化的区别

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;

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

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

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

7、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

从SqlServer转手Oracle的一些坑的更多相关文章

  1. EntityFramework CodeFirst SQLServer转Oracle踩坑笔记

    接着在Oracle中使用Entity Framework 6 CodeFirst这篇博文,正在将项目从SQLServer 2012转至Oracle 11g,目前为止遇到的问题在此记录下. SQL Se ...

  2. 针对各主流数据mysql、sqlserver、oracle中文乱码问题。

    针对各主流数据mysql.sqlserver.oracle当以编码格式gbk存放数据时,要注意字符串类型的字段,要采用宽字符串nvarchar存放,前提是当你的应用程序是utf8编码,而数据库是gbk ...

  3. SQLServer与Oracle的对照

        近期去铁科院面试,项目组长问了我这样一下问题:SQLServer与Oracle的差别是什么?从进入软件行业.从開始CS的编码到BS的编码过程中使用的都是SQLServer.在半年前開始敲DRP ...

  4. SQLServer访问Oracle查询性能问题解决

    原文:SQLServer访问Oracle查询性能问题解决 1. 问题 系统有个模块,需要查询Oracle数据库中的数据.目前是通过建立链接服务器实现的. SQLServer访问Oracle实现 可参考 ...

  5. C#操作SqlServer MySql Oracle通用帮助类Db_Helper_DG(默认支持数据库读写分离、查询结果实体映射ORM)

    [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系型数据库,在使用了多年的Sql_Helper_DG后,由于项目需 ...

  6. Access、SQLServer、Oracle常见SQL语句应用区别

    Access.SQLServer.Oracle常见SQL语句应用区别 关劲松 PMP 如果要兼容Access.SQL Server.Oracle三个数据库版本:我们在编写SQL语句的过程中,尽量使用一 ...

  7. spring BasicDataSource 数据源配置 sqlserver数据库 oracle数据库 mysql数据jdbc配置

    spring BasicDataSource 数据源配置 sqlserver数据库 oracle数据库 mysql数据jdbc配置 jdbc.properties 文件信息如下: ---------- ...

  8. 转 update关联更新在sqlserver和oracle中的实现

    sqlserver和oracle中实现update关联更新的语法不同,都可以通过inline view(内嵌视图)来实现,总的来说sqlserver更简单些. 测试例子如下: create table ...

  9. 利用Kettle进行SQLServer与Oracle之间的数据迁移实践

    Kettle简介 Kettle(网地址为http://kettle.pentaho.org/)是一款国外开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,数据抽取高效 ...

随机推荐

  1. PHP基础知识之常量

    定义: define("FOO",     "something");

  2. web Api 返回json 的两种方式

    web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...

  3. C++类型转换函数

    1.什么是类型转换函数 类型转换函数的作用是将一个类的对象转换成另一类型的数据. class testclass { private: int r; int m; public : testclass ...

  4. NodeJs 开发微信公众号(二)测试环境部署

    由于卤煮本人是做前端开发的,所以在做公众号过程中基本上没有遇到前端问题,在这方面花的时间是最少的.加上用了mui框架(纯css界面)和自己积累的代码,很快地开发出了界面来.接着是后台开发.卤煮选的是n ...

  5. 依赖倒置(DIP)与依赖注入(DI)

    依赖倒置原则(Dependency Inversion Principle)为我们提供了降低模块间耦合度的一种思路,依赖注入(Dependency Injection)是一种具体的实施方法. 依赖倒置 ...

  6. Net作业调度(四)—quartz.net持久化和集群

    介绍 在实际使用quartz.net中,持久化能保证实例重启后job不丢失. 集群能均衡服务器压力和解决单点问题. quartz.net在这两方面配置都比较简单. 持久化 quartz.net的持久化 ...

  7. [.net 面向对象程序设计深入](0) 开篇

    [.net 面向对象程序设计深入](0)开篇        [.net 面向对象编程基础]和 [.net 面向对象程序设计进阶]在15年底写完了,群里也加进来不少热爱学习的小伙伴.让我深切感受到在这个 ...

  8. MySQL数据库数据存放位置修改

    MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...

  9. How To Use Goto?

    看到,网上很多人对于goto的询问, 因为本身在工作中经常使用到,所以写下此文, 如有错误, 请指出. 本人写博文的时候主要从事C++工作 对于goto的态度,本人目前成长如下: 学生时代 老师课堂上 ...

  10. Thread.Sleep引发ThreadAbortException异常

    短信平台记录日志模块,是通过异步方式来记录的,即日志工具类里初始化一个Queue对象,公共的写日志方法的处理逻辑是把日志消息放到Queue里.构造器里设定一个死循环,不停的读队,然后把日志消息持久化到 ...