共计 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 行业资讯频道!