动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库学院 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.上帝的神谕——ORACLE公司传奇.
.ExactPapers Oracle 1Z0-025 200.
.Oracle 4月更新修复多个安全漏洞.
.0racle-07445 错误的解决方法和处.
.Infor收购16公司 称ORACLE错失最.
.Oracle中独一无二的Cache对象.
.Oracle PL/SQL集合增强.
.PL/SQL程序结构.
.ORACLE中几种的数据类型的用法以.
.数据库运行在非归档模式下,数据.
.ExactPapers Oracle 1Z0-031 200.
.一次分析的全过程.
.AIX4.3.3上安装ORACLE9.2过程详解.
.Linux下远程安装Oracle的技巧.
.如何在Oracle的报警日志添加自定.
.在Adaptive Server Anywhere和Or.
.用Oracle TimesTen加速Oracle数据.
.Oracle基本数据类型存储格式浅析.
.ORACLE常用傻瓜問題1000問(之十二.
.Oracle最大可用性体系结构.

oracle移植到mysql注意事项

发表日期:2008-2-9 |


  客户用的数据库是mysql,而研发好的产品支持Oracle,为了让客户掏腰包,我们必须把数据库环境从oracle转向mysql。我们在转换的过程中碰到了下面一些问题,希望能给同样遭遇的同仁们一些借鉴。假如我们在最初的设计、编码过程中注重数据库的移植性,这种情况下可以完全不需要作额外工作。   一、数据库环境从oracle转向mysql碰到的问题。   因为逻辑不变,所以原则是不改应用程序代码,只改数据库表的创建/初始化sql。下面是我们碰到的问题以及解决办法。   1、 大小写敏感的区别(假如服务器OS是Linux)。   在oracle中一般情况下不区分大小写。有时候我们在使用oracle不注重大小写的问题,表名和字段名不加双引号是不区分大小写的,像这样:insert into tableName 和 insert into TABLENAME效果是一样的,用工具导出创建/数据初始化脚本,得到的结果一般表名和字段名转化成了大写。   但在MySQL中,所使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性。数据库对应数据目录中的目录,数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎)。因此,使用数据库或表实际上是操纵这些文件(夹),所以使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性。在以linux为内核的操作系统中是大小写敏感的。   解决的办法是把mysql的数据库名和oracle的大小写保持一致,表名与应用程序中sql字符串中的表名保持一致,假如应用程序中字段名用了双引号,那请把sql中的字段名大小写与双引号里的字符保持一致。假如你的应用程序所引用的表名、字段没有统一大小写,那麻烦就大了。   2、保留字的区别。   像sql语言的函数名(如:inteval,show)等是保留字。Oracle中保留字是可以作为表名和字段名,并且不影响使用,但mysql中保留字是不能作为表名和字段名,假如使用会报语法错误。   解决办法,把sql语句中的保留字用‘`’符号引起来,这个符号位于键盘的tab键上面;假如是字段名还有另外一种方法tablename.字段名。像这样:insert into tablename (id, `interval`) value(….. 或insert into tablename (id, tablename.inteval) value(….. 。   3、数据类型的区别。   在mysql中没有像oracle中的varchar2、number,mysql有与之对应的varchar、numeric,当然在oracle中没有mysql的time类型。   解决办法是替换。   4、自动增长类型的区别。   Oracle有sequence,mysql中没有,但有auto_increment属性。   解决办法是把Oracle中sequence转换成使用auto_increment属性,某些情况可能还有一种办法可以解决问题,新建一个独立的表用来专门记录自动增长型的数据。   5、索引长度限制的区别。   从MySQL 4.1.2开始,MyISAM和InnoDB表索引长度支持1000字节,也就是说索引字段的长度不能超过1000字节,假如超过会报这样的错:ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes。假如是UTF-8编码,相当于333个字符的长度(因为UTF8一个字符占3个字节)。Oracle的索引长度限制比mysql要宽松得多。   解决的办法就不必要多说了,要么改索引的定义,要么改字段的定义长度。   二、为了数据库的兼容性我们应该注重些什么。   数据库的兼容性应该是数据库设计应该重视的一个问题,因为有时候客户存在已经在用的数据库,并且不希望同时维护两个数据库,这样的话兼容多种数据库还能成为产品的一个卖点。   作到数据库的兼容性要害是遵守标准用法。   1、 遵守标准用法,尽量不使用某种数据库特有的用法。   如msyql的‘`’符号的用法,   再比如,很多人有这种用法,在使用oracle开发的时候创建sequence,往表中插数据之前先SELECT seq.nextval FROM DUAL;,然后把查询得到的值作为value插入表中,这种用法没法适应没有sequence的数据库,每个数据库都有自动增长型的用法,假如需要使用就应该完全地使用。   再举个例子,不同的数据库对分页查询作了扩展,postgresql有offset,limit,oracle就没有。   2、 避免数据库大小写敏感的问题。   选择数据库表名和字段名采用大写还是小写,并且在数据库的设计和编码过程中完全统一。   3、 保留字。   要求数据库设计者尽量不使用保留字作表名和字段名。也有很多人有这种用法,在表名和字段名前加‘_’,像这样:create table _tablename ( _id integer)。这样永远不会出现保留字引起的问题。


上一篇:细化解析:Oracle 10g ASM 的一点经验 人气:454
下一篇:在 Python环境下连接Oracle数据库的具体步骤 人气:465
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-7 pmwiki v2.2.0 beta 66
2008-7-7 HIWEB 网站快车 v8.5 Build 0807
2008-7-7 AyWeb企业网站管理系统 v2.2 bui
2008-7-7 Modoer多功能点评系统 v1.0 Buil
2008-7-7 因特达crm2008客户关系管理系统
2008-7-7 Modoer多功能点评系统 v1.0 Buil
2008-7-7 hahaCMS v0.2.2
2008-7-7 乖乖网络电视直播程序 v1.8
2008-7-7 XML文章系统 v1.04
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報