首頁  >  文章  >  資料庫  >  MySQL與Oracle 差異比較之二基本語法

MySQL與Oracle 差異比較之二基本語法

黄舟
黄舟原創
2017-01-17 11:46:15999瀏覽

MySQL與Oracle 差異比較之二基本文法

基本文法

編號                                                MYSQL                 變數的宣告方式不同   li_index NUMBER := 0    DECLARE li_index INTEGER DEFAULT 0    1. mysql 使用DECLARE定義局部變數. 

定義變數語法為: DECLARE var_name[,...] type [DEFAULT value] 要提供變數一個預設值,需要包含一個DEFAULT子句。值可以被指定為一個表達式,不需要為一個常數。如果沒有DEFAULT子句,初始值為NULL。

2    變量的賦值方式不同   lv_inputstr := iv_inputstr    SET lv_inputstr = iv_inputstr    1. oracle 

3跳出(退出)語句不同   EXIT;    LEAVE procedure name;    1. oracle: 如果exit語句在循環中就退出當前迴圈.如果exit語句不再循環,就退出當前或方法.


My: 如果exit語句不再循環,跟的是儲存過程名稱,則退出目前預存程序. 如果leave語句後面接的是lable名. 則退出目前lable. 

   


while 條件loop

exit;

while 條件loop


exit;
leave label_name;

end while label_name;    

4    定義遊標   TYPE g_grp_cur IS REF CURSAREOR遊標賦值. 

mysql定義遊標時就需要給遊標賦值. Mysql定義遊標出自Mysql 5.1 參考手冊20.2.11.1.聲明遊標.    

5    定義數組   TYPE unpacklist_type IS TABLE OF VARCHAR2(2000) INDPGER BY字元來替代oracle數組.    目前可以使用臨時表來代替oracle數組. 

詳見>或"/**……*/"
或"/*&*/"    "-- message" 或"/*&*/"
或"#"    mysql註解來自MySQL 5.1參考手冊9.5 . 註解語法, 建議同oracle一樣, 單行用--, 多行/* */    

7    自帶日期時間函數格式不同   Oracle時間格式:yyyy-MM-dd hh:mi:sssql    時間格式:%YMy -%m-%d %H:%i:%s    1. MYSQL日期字段分DATE和TIME兩種. 

ORACLE日期字段只有DATE,包含年月日時分秒資訊. 

2. mysql中取當前系統時間為now()函數,精確到秒. 


oracle中取當前資料庫的系統時間為SYSDATE, 精確到秒.    

8    日期加減   當前時間加N天: sysdate+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(v_int1,v_int2);    1. oracle 1. oracle連接兩個字串.

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_KDRd 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 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;

   詳見>中2.2 Mysql慢標處理部分交易 ROLLBACK;    oracle和mysql使用方法相同   

12    GOTO語句   GOTO check_date;



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn