Oracle數據庫項目遷移到mysql數據庫

oracle----mysql 語法區別(EPC回顧總結1)

1.oracle:
select m.code as code,m.code||’:’||m.name as name
from Dic_Type_Item m where m.del_flag=‘0’
and m.status=‘0’
and m.type_code=?
order by m.Code

mysql:
SELECT
M .code AS code,
CONCAT_WS(’:’,M.code,M.NAME) AS NAME
FROM
Dic_Type_Item M
WHERE
M .del_flag = ‘0’
AND M .status = ‘0’
AND M .type_code =?
ORDER BY
M .Code

因爲Hibernate不支持concat_ws,所以需要在UserDialect中定義方言
this.registerFunction(“concat_ws”, new StandardSQLFunction(“concat_ws”,Hibernate.STRING));

2.oracle中instr的用途
MySQL: select * from tableName where name like ‘%helloworld%’;
Oracle:select * from tableName where instr(name,‘helloworld’)>0; --這兩條語句的效果是一樣的

3.oracle:
SELECT
M .*
FROM
Apsis_Part M,
Auto_Oem_Part n,
Apsis_Part_Oempart b
WHERE
M . ID = b.apsis_Part_Id
AND n. ID = b.oem_Part_Id

mysql:
SELECT
m.*
FROM
Apsis_Part m
inner JOIN
Apsis_Part_Oempart b
on m.id = b.apsis_Part_Id
inner JOIN
Auto_Oem_Part n
on n.id = b.oem_Part_Id

4.排序函數:
oracle: nlssort(enterprise_name,‘NLS_SORT=SCHINESE_PINYIN_M’)

mysql:convert(name,gbk) ASC
且Hibernate中需要在方言中自定義函數convert
public class UserDialect extends MySQL5InnoDBDialect{
public UserDialect() {
super();
this.registerFunction(“convert”, new SQLFunctionTemplate(new StringType(), “convert(?1 using ?2)”));
}
}

5.時間格式A:
Oracle
TO_DATE(to_char(sysdate-1,‘yyyymmdd’), ‘yyyymmdd’)

mysql:
date_format(date_sub(curdate(),interval 1 day),’%Y-%m-%d’)

6.oracle中nvl函數 對應mysql中的ifnull()
7.oracle 中sysdate ========== mysql中的curdate()
8. oracle sys_guid()========== mysql replace(uuid(),’-’,’’)
9.oracle rownum ======= mysql limit

oracle:select rownum rn1======= mysql: select @rownum1=@rownum1+1 as rn1    
  1. oracle chr()======== mysql char()

11.Oracle: wm_concat()======== mysql:group_concat()

12.oracle 中start with 在mysql 中如何 ??? 替代

13.oracle 中 ROW_NUMBER () OVER 如何 ??替代

14.oracle 中 to_number 如何替代?cast(… as signed integer)

15.oracle 中regexp_substr 如何替代?

備忘:1.下拉框爲0,1時是sql語法不符合mysql語法
2.js中方法注意不能嵌套,不然找不到會出現 funciton undefined
3.元配車型信息:
導出關聯力揚車型按鈕
ExportExcelAction.java
方法:exportAutoCarLiyExcel
SELECT
temp.*
FROM
(
SELECT
lc.level_id AS ly_levelId,
lc.CAR_MODEL_DESC AS ly_carModelDesc,
lc.AUTO_OEM_NAME AS ly_autoOemName,
lc.BRAND_NAME AS ly_brandName,
lc.SERIES_NAME AS ly_seriesName,
lc.HD AS ly_hd,
lc.CAR_MODEL AS ly_carModel,
lc.LISTED_YEAR AS ly_listedYear,
lc.STOP_PRODUCT_YEAR AS ly_stopProductYear,
lc.PRODUCT_COUNTRY_TYPE AS ly_productCountryType,
lc.ENGINE_TYPE AS ly_engineType,
lc.chassis_num AS ly_chassisNum,
lc.DISPLACEMENT AS ly_displacement,
lc.AIRIN_TYPE AS ly_airinType,
lc.FUEL_TYPE AS ly_fuelType,
lc.TRANSMISSION_TYPE AS ly_transmissionType,
lc.TRANSMISSION_DESC AS ly_transmissionDesc,
lc.GEAR_NUM AS ly_gearNum,
ac.CAR_CODE AS ac_carCode,
ac.BSXMS AS ac_transmissionDesc,
ac.JQRL AS ac_jqrl,
ac.STARTYEAR AS ac_startYear,
ac.ENDYEAR AS ac_endYear,
lc.CHEXIANGID AS lc_cheXiangId,
rownum AS rn
FROM
auto_car ac
INNER JOIN AUTO_LIY_CAR_REF alcr ON ac.DEL_FLAG = ‘0’
AND alcr.IS_EFFECT = ‘1’
AND AC.CAR_CODE = alcr.AUTO_CAR_CODE
AND ac.auto_oem_id = ‘8aa03ccd5963cf99015963e7103d267a’
LEFT JOIN LIY_CAR lc ON lc.del_flag = ‘0’
AND alcr.liy_car_level_id = lc.level_id
) temp
WHERE
temp.rn BETWEEN 1
AND 500000

selectCarModel_findListCar.do
selectCar.jsp
caytypeReturnValue

主:brandPart_findListNew.do

備忘:

     //var v = searchModalDialog("dictSearch_searchDicNew22.do?typeCode=D17");
	 var url = "./dictSearch_searchDicNew22.do?typeCode=D17";
     window.open(url, "選擇燃料類型窗口", "width=850px, height=650px,top=200,left=200,toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no,alwaysRaised=yes,depended=yes");		

 抽離下面的/* 	 if (!v) {
		v = window.returnValue;
	}
	if(v){
		var idarray = v.split("^");
		if(idarray && idarray.length>=2){
			$(btn).parent().find("input[name='cxRulesDTO.typeA']").val("D17");
        	$(btn).parent().find("input[name='cxRulesDTO.codeA']").val(idarray[1]);
			$(btn).parent().find("input[name='cxRulesDTO.nameA']").val(idarray[2]);
		}
	}  */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章