SNF平台从sql server兼容oracle的处理方式和开发方式

面前几龙发生这样一个需,就是让SNF平台BS版的基本功程序完善支持Oracle数据库。

初一羁押即是一个深非常之工,因为大家还明白
Sql和Oracle的语法有众多底免一样,如 top
、日期获取、类型中、特殊的要字如sqlserver中会用到
dbo.、[]声泪俱下都怪、自动增长、分页查询等。所以要配合于统筹时便应做处理。

        
那以SNF快速开平台设计时便考虑了这个问题,所以我们花费了3龙之年华打无Oracle数据库
现搭环境,现创建表空间、现创建表结构导数据,创建行,甚至拿本用的C#连接oracle的dll库也升格了一晃。表结构的题材用工具Navicat->数据传功能
帮助缓解之,传输过去起一个题材虽是表名和字段名加上了””号,再第一潮运行程序时发现了问题,统一开展了导出脚本把””去丢还实践问题。数据库升级完后我们尚待进行次的调,还吓框架兼容和扩展性比较好,整个测试后发觉
10~20远在不合乎需要各个进行了调整,也是充满艰辛的。

         经过调整后以SNF框架下开之早晚如果小心以下几点:

  1. 一经需要写sql时绝不为此 dbo.、[]号,
  2. 再有以from后的阐发起别名时不要用 as
    只要加空格即可。要不然Oracle不配合。
  3. 还发就是字段和表名大小写题目,Sql
    server是匪分轻重缓急写的,在Oracle里会把具备都表名和字段名都变成大写的。为了bs程序页面调用时有利于多数库支持时统一我们召开了翻处理。

 

更出新程序时,想如果运我们的代码生成器等工具做来的语句的开步骤如下(指BS程序):

  1. 每当Sql Server数据库创建表,自增主键也堪采取。表及字段要把叙写上。
  2. 动用SNF.CodeGenerator代码生成器把对应之单表或多表实体、服务层、页面等代码生成出来。拷贝到品种相应的岗位,如果生独家代码可能得调。
  3. 将程序菜单挂及后,运行与增加个性化功能。
  4. 支付形成后,开始开展Oracle的腾挪。

a)        
采用Navicat->数据传功能将表结构复制过去,再Navicat里将表结构导出去掉””号,再创表结构。也将相应的默认值也处理一下。

b)        
如果是自增长之语句需要创造一个列号,序列号名为“seq_表名”。这样特别成的代码就得匹配。

c)        
还索要往BaseTranslation表增加字段翻译,用于翻译Oracle大写字段和Sql
server
Pascal大小写字段名的题目。DataTable是免区分轻重缓急写的绝不管。但于页面绑定字段和js取值等地且见面起因此。为了一坏支付多数据库支持我们得处理。

流淌:翻译后页面使用的凡Pascal大小写字段名。如:Id、ParentId、SortCode等。

 

下面SQL脚本,作用是摸索出来有所表字段和Pascal大小写和统怪写字段名称。放到翻译表。

 

Insert into BaseTranslation

select distinct [name], upper([name] ) from [syscolumns] where
[id] in(

select [id] from [sysobjects] where [type] = ‘u’

)

union

select distinct [name], upper([name] ) from WorkFlowV30.
dbo.[syscolumns] where [id] in(

select [id] from WorkFlowV30.dbo .[sysobjects] where [type] = ‘u’

)

union

select distinct [name], upper([name] ) from ProjectV30.
dbo.[syscolumns] where [id] in(

select [id] from ProjectV30.dbo .[sysobjects] where [type] = ‘u’

)

select * from BaseTranslation

 

再度附赠一个Oracle备份和死灰复燃脚本:

exp SYSTEM/orcl@192.168.2.50:1521/orcl file=d:\snf_oracle.dmp;

 

exp platform/platform@192.168.2.50:1521/orcl
file=d:\snf_oracle_platform.dmp;

作者: 王春天 2015-11-23
作者Blog:http://www.cnblogs.com/spring_wang

  如果看还不易,欢迎转载。

按照系列文章列表如下:

据悉SNF-快速支付平台框架的多样文章:

SNF快速支付平台3.2的–.Net可扩大的契约编号生成器-SNF.CodeRule

SNF快速支付平台3.1之–审核流(3)低调奢华,简单不凡,实例演示-SNF.WorkFlow

SNF快速支付平台3.1底–审核流(2)流程设计-SNF.WorkFlow功能使用验证

SNF快速开平台3.1底–审核流(1)SNF.WorkFlow审核流简介

SNF快速支付平台3.0底–完美的代码生成器SNF.CodeGenerator-快速开发者的利器

依据MVC4+EasyUI的Web开发框架–Spring.Net.FrameworkV3.0完整介绍

SNF快速支付平台3.0之–MVC
打印解决方案

SNF快速开平台3.0之–文件批量上传-统一附件管理器-在线预览文件(有互联网以及没简单种)

SNF快速支付平台3.0的–asp.net mvc4
强大的导出和无需要达到污染文书之批量导入EXCEL

SNF快速开平台3.0底MVC通用控件库展示-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速支付平台3.0的BS页面展示暨九分外长-部分页面显示效果-Asp.net+MVC4.0+WebAPI+EasyUI
+Knockout

SNF快速开平台3.0底-界面个性化配置+10种植皮肤+7种菜单-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速开平台3.0底-CS页面-Asp.net+Spring.Net.Framework

SNF快速开平台3.0底–系统里播放的作用–迅速就、简明扼要的将信发送给接收者