MySQL与Oracle差异比较之基本语法的示例分析

46次阅读
没有评论

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计2360字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)