程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql、oracle存儲過程語法區別

mysql、oracle存儲過程語法區別

編輯:MySQL綜合教程

mysql、oracle存儲過程語法區別


mysql 、oracle存儲過程語法區別

1、 條件語句:mysql使用elseif關鍵字,oracle是elsif關鍵字;

oracle:

if表達式 then

表達式;

elsif

表達式;

endif;

mysql:

if表達式then

表達式;

elseif

表達式;

endif;

2、 字符串連接

oracle使用 || ;

mysql 使用concat函數;

3、 日期計算(年月日數)

mysql:

函數TimeStampDiff()是MySQL本身提供的可以計算兩個時間間隔的函數,語法為:TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2),其中unit單位有如下幾種,分別是:SECOND, MINUTE, HOUR, DAY,WEEK, MONTH, QUARTER, or YEAR。

當前時間:sysdate() 
字符轉日期:str_to_date() 分隔符一致,年月日要一致;示例:

select str_to_date('2008-4-2 15:3:28','%Y-%m-%d%H:%i:%s');

日期轉字符:DATE_FORMAT(date,format) 
SELECT DATE_FORMAT(sysdate(), '%Y-%m-%d %H:%i:%s');
數字轉字符:concat(num,’’)

oracle:

months_between 求日期間隔月份,除以12即為間隔年份;

天數,只需要日期直接相減;

當前時間:sysdate

字符轉日期:to_date()

日期轉字符:to_char(date,format) to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
數字轉字符:to_char(num)

4、 定義游標

oracel:

CURSOR curPlanIndex is

SELECT a.INDEX_SCORE

,c.enum_value,c.dn_value,c.up_value,c.score,c.score_desc

FROM eval_plan_index a

JOIN eval_index_score c onc.index_id=a.index_id and a.plan_id = c.plan_id

WHERE a.plan_id = V_PLAN_ID and a.index_id= V_INDEX_ID

order by dn_value;

MYSQL:

declare curPlanIndex cursor for

SELECT a.INDEX_SCORE

,c.enum_value,c.dn_value,c.up_value,c.score,c.score_desc

FROM eval_plan_index a

JOIN eval_index_score c onc.index_id=a.index_id and a.plan_id = c.plan_id

WHERE a.plan_id = V_PLAN_ID and a.index_id= V_INDEX_ID

order by dn_value;

5、 selectinto 賦值

oracle 有exception錯誤處理

begin

select value_name into vc_num_unit fromsys_dict

where dict_code = 'szdw' and value_code =v_num_unit and rownum <=1 ;

exception

when no_data_found then

vc_num_unit := '';

end;

mysql 如果select 沒有數據,則不執行into操作,變量值保持為上次結果,需要手工重置。最好能limit 1;只返回一條數據;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved