设为首页 加入收藏

TOP

mysql、oracle存储过程语法区别
2015-11-21 01:55:01 来源: 作者: 【 】 浏览:0
Tags: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 eva l_plan_index a

JOIN eva l_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 eva l_plan_index a

JOIN eva l_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;只返回一条数据;

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HeidiSQL软件推荐(MySQL服务器和.. 下一篇MySQLkey分区(五)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: