共計 2360 個字符,預計需要花費 6 分鐘才能閱讀完成。
這篇文章主要介紹 MySQL 與 Oracle 差異比較之基本語法的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
基本語法
編號類別 ORACLEMYSQL 注釋 1 變量的聲明方式不同 li_index NUMBER := 0DECLARE li_index INTEGER DEFAULT 01. mysql 使用 DECLARE 定義局部變量.
定義變量語法為: DECLARE var_name[,…] type [DEFAULT value] 要給變量提供一個默認值,需要包含一個 DEFAULT 子句。值可以被指定為一個表達式,不需要為一個常數。如果沒有 DEFAULT 子句,初始值為 NULL。 2 變量的賦值方式不同 lv_inputstr := iv_inputstrSET lv_inputstr = iv_inputstr1. oracle 變量賦值使用:=
mysql 使用賦值使用 set 關鍵字. 將一個值賦給一個變量時使用 = . 3 跳出(退出)語句不同 EXIT;LEAVE procedure name;1. oracle: 如果 exit 語句在循環中就退出當前循環. 如果 exit 語句不再循環中, 就退出當前過程或方法.
Mysql: 如果 leave 語句后面跟的是存儲過程名, 則退出當前存儲過程. 如果 leave 語句后面跟的是 lable 名. 則退出當前 lable.
while 條件 loop
exit;
end loop;label_name:while 條件 do
leave label_name;
end while label_name;4 定義游標 TYPE g_grp_cur IS REF CURSOR;
DECLARE cursor_name CURSOR FOR SELECT_statement;oracle 可以先定義游標, 然后給游標賦值.
mysql 定義游標時就需要給游標賦值. Mysql 定義游標出自 Mysql 5.1 參考手冊 20.2.11.1. 聲明光標.5 定義數組 TYPE unpacklist_type IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER; 可以使用臨時表代替 oracle 數組, 也可以循環拆分字符來替代 oracle 數組. 目前可以使用臨時表來代替 oracle 數組.
詳見 2009002-OTMPPS-Difficult Questions-0001.doc 中 2.4 Mysql 數組處理部分 6 注釋方式不同 — message 或 /** …. */ 或 /* …. */ — message 或 /* …. */ 或 # mysql 注釋來自 MySQL 5.1 參考手冊 9.5. 注釋語法, 建議同 oracle 一樣, 單行用 –, 多行 /* */ 7 自帶日期時間函數格式不同 Oracle 時間格式:yyyy-MM-dd hh:mi:ssMysql 時間格式:%Y-%m-%d %H:%i:%s1. MYSQL 日期字段分 DATE 和 TIME 兩種.
ORACLE 日期字段只有 DATE,包含年月日時分秒信息.
2. mysql 中取當前系統時間為 now() 函數, 精確到秒.
oracle 中取當前數據庫的系統時間為 SYSDATE, 精確到秒.8 日期加減當前時間加 N 天: sysdate+N
當前時間減 N 天: sysdate- N 日期相加: date_add(now(), INTERVAL 180 DAY)
日期相減: date_sub(1998-01-01 00:00:00 , interval 1 1:1:1 day_second) 9 字符串連接符不同 result := v_int1||v_int2;set result = concat(v_int1,v_int2);
1. oracle 使用 || 連接字符串, 也可以使用 concat 函數. 但 Oracle 的 concat 函數只能連接兩個字符串.
Mysql 使用 concat 方法連接字符串. MySQL 的 concat 函數可以連接一個或者多個字符串, 如
mysql select concat(10 結果為: 10.
mysql select concat(11 , 22 , 33 , aa 結果為: 112233aa
2. || 在 Mysql 是與運算 10 定義游標不同 CURSOR l_bk_cur IS
SELECT B.BK_HDR_INT_KEY, B.BK_NUM
FROM ES_SR_DTL_VRB A, ES_BK_HDR B
WHERE A.BK_HDR_INT_KEY = B.BK_HDR_INT_KEY
AND b.BK_STATUS != ES_BK_PKG.g_status_can
AND A.SR_HDR_INT_KEY = ii_sr_hdr_int_key;DECLARE l_bk_cur CURSOR
FOR SELECT B.BK_HDR_INT_KEY, B.BK_NUM
FROM ES_SR_DTL_VRB A, ES_BK_HDR B
WHERE A.BK_HDR_INT_KEY = B.BK_HDR_INT_KEY
AND b.BK_STATUS != ES_BK_PKG.g_status_can
AND A.SR_HDR_INT_KEY = ii_sr_hdr_int_key;
詳見 2009002-OTMPPS-Difficult Questions-0001.doc 中 2.2 Mysql 游標處理部分 11 事務回滾 ROLLBACK;ROLLBACK;oracle 和 mysql 中使用方法相同 12GOTO 語句 GOTO check_date;GOTO check_date;oracle 和 mysql 中使用方法相同
以上是“MySQL 與 Oracle 差異比較之基本語法的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!