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

时间: 2024-08-26 04:20:44

mysql 、oracle存储过程语法区别的相关文章

MySQL与Oracle的语法区别详细对比 (转)

Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> se

MySQL与Oracle的语法区别详细对比

Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> se

MySQL与Oracle的语法区别

Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> se

SQL Server,MySQL,Oracle三者的区别

Oracle Oracle 能在所有主流平台上运行(包括Windows).完全支持所有的工业标准.采用完全开放策略.可以使客户选择最适合的解决方案.对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案.如果Windows NT不能满足需要,用户可以把数据库移到UNIX中.Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度.Oracle获得最高认证级别的ISO标准认证.Oracle性能最

oracle存储过程语法

1 create or replace procedure lis_zhifang_return_confirm(barcode in varchar2,deptcode1 in varchar2) 2 as 3 begin 4 update clc_recipe r set r.deptcode=deptcode1 , r.deptname='检验科' where r.labcode=barcode; 5 commit; 6 7 end; 1 CREATE OR REPLACE PROCEDU

你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗

ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性:    Oracle.MYSQL与DB2可在所有主流平台上运行:    SQL Server只能在Windows下运行: --安全性:    Oracle的安全认证获得最高认证级别的ISO标准认证,而SQL Server并没有获得什么安全认证:    这方面证明了Oracle的安全性是高于SQL Server的: --数据类型.函数.sql语句:    oracle中有复合数据类型,sql server中没有: 总之:   

Oracle存储过程基本语法介绍

Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删

Oracle存储过程基本语法 存储过程

Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删

Oracle存储过程基本语法

存储过程 1  CREATE OR REPLACE PROCEDURE 存储过程名 2  IS 3  BEGIN 4  NULL; 5  END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体. 行3: BEGIN关键词表明PL/SQL体的开始. 行4: NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL