资源描述:
《oracle到mysql转换的问题总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Oracle到mysql转换的问题总结常用字段类型区别oraclemysqlnumber(10,0)intnumber(10,2)decimal(10,2)varchar2varchardatedatetimeColbtext个别语句写法区别1.oracle里只可以用单引号包起字符串,mysql里可以用双引号和单引号。2.mysql在select*from()....,from后面是一个结果集时,括号后面必须加上别名。3.mysql在delete数据时不能给表加别名,如:deletefromtabl
2、e1Twhere....,会报错,但是可以这样写:deleteTfromtable1Twhere....。4.Mysql不支持在同一个表中先查这个表在更新这个表,举个例子说明一下,insertintotable1values(字段1,(select字段2fromtable1where...)),但是可以在后面那个table1加上别名就没有问题了。insertintotable1values(字段1,(selectT.字段2fromtable1Twhere...))5.MYSQL有自动增长的数据类型,
3、插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。也可以自定义函数实现oracle的nextval。6.翻页的sql语句处理,MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数,例如:select*fromtablelimitm,n,意思是从m+1开始取n条。常见的函数替换1.日期转换方面的函数oraclemysql说明to_char(date,’yyyy-MM-ddhh24:m
4、i:ss’)date_format(date,'%Y-%m-%d%H:%i:%s')注意时间格式的对应to_date(str,’yyyy-MM-ddhh24:mi:ss’)str_to_date(str,'%Y-%m-%d%H:%i:%s')注意时间格式to_date(str,’yyyy-MM-ddhh24:mi:ss’)str_to_date(str,'%Y-%m-%d%T')注意时间格式to_char()、to_number()convert(字段名,类型)类型转换date+ndate_add(
5、date,intervalnday)日期增加n天selectdate_add(sysdate(),INTERVAL2DAY);add_months(date,n)date_add(date,intervalnmonth)日期增加n个月selectdate_add(sysdate(),INTERVAL2MONTH);date1-date2datediff(date1,date2)日期相减获取天数2.oracle中decode()函数,可以用casewhen进行替换例子:Oracle:selectdec
6、ode(a,b,c,d)ascol1fromtable1;Mysql:selectcasewhena=bthencwhena!=bthendendascol1fromtable13.oracle的函数ROW_NUMBER()OVER(PARTITIONBYcol1ORDERBYcol2),根据col1分组,在分组内根据col2排序,改函数计算的值就表示每组内部排序后的顺序编号。Mysql没有这个函数,可以用mysql的用户变量来实现例子:Oracle:selectrow_number()over(p
7、artitionbycol1orderbycol2)asnumfromtable1Mysql:selectnum1asnumfrom(selectif(@pdept=col1,@rank:=@rank+1,@rank:=1)asnum1,@pdept:=col1fromtable1orderbycol2)H这里用到mysql的用户变量。4.oracle的行号ROWNUM,mysql没有这个行号,也需要用用户变量来实现。例子:Oracle:select*fromtable1whererownum-co
8、l1=0Mysql:select*fromtable1,(SELECT(@rowNum:=0))HHwhere(@rowNum:=@rowNum+1)-col1=05.Oracle中的substr(hello,a,b)mysql中是substring(hello,a,b)oracle的a=0和a=1是一样的,都是从第一个开始。Mysql是从0开始。6.Oracle的nvl()对应mysql的ifnull()。5.Oracle中的WMSYS.WM_CONCAT(),列转