1、标签的定义:oracle是<>,sql 是label:
2、空串和null:''在oracle中可以理解和null没有区别,sql是有区别的;null在oracle中和字符串连接返回字符串,sql返回null(见参数CONCAT_NULL_YIELDS_NULL)
3、语句的结束符:oracle是分号或者/,sql可以是分号也可以不使用
4、大小写敏感性:oracle对表的定义等是大小写不敏感的(除了用双引号之外),对字符串是敏感的,sql是需要根据排序规则确定是否敏感
5、事务:oracle在dml操作之后需要commit或者rollback,sql不需要。sql的事务控制是使用BEGIN TRAN/TRANSACTION和COMMIT/ROLLBACK TRAN/TRANSACTION|[WORK]。
6、赋值:oracle使用:=,sql使用=,且需要加set关键字。
select赋值:oracle是用into,sql是@var=xxx;当查询无数据或多于一条数据时,oracle报错,sql不报错,对于无数据返回初始值,对于多条数据时循环赋值。
7、if判断:oracle是if..then..else..end if,sql是if..begin..end else..,sql有if exists的写法
8、CURSOR的使用:oracle是cursor v_cur is select ...,最后close cur;sql是DECLARE sql_cursor(此处的变量不能用@开头) CURSOR FOR SELECT ...,最后close并且DEALLOCATE,
sql中cursor变量的赋值是set @cur = cursor for select ...。
sql中cursor 数据类型只能用于 OUTPUT 参数,必须同时指定 VARYING 和 OUTPUT 关键字。
9、过程的参数:oracle是in/out,写在数据类型之前,sql是output,写在数据类型之后,且在调用时也需要显式指定而不仅是在过程定义时。
oracle参数不需要指定长度,sql需要,否则默认是1(varchar)或者18(numeric),包括返回值也是一样。
oracle入参不能修改,sql可以修改。
23、过程/函数:结构:oracle必须有begin..end,sql的过程可以不使用,但函数必须有(标量函数和多语句表值函数,内联表值函数不能有)
sql中存储过程可以省略带默认值的参数,而函数则不行,必须指定DEFAULT关键字来代替。
ORACLE的过程可以有return,但其后不能跟表达式;sql的过程可以有return,且可以跟表达式,不显式指定返回值时,执行成功返回0,失败返回1(即使显式指定)
10、异常处理:oracle是用exception,sql是用@@error或者try...catch(begin try ... end try begin catch ... end catch)
在不捕获异常的情况下,oracle不会继续往下执行后面的语句,sql会
2、空串和null:''在oracle中可以理解和null没有区别,sql是有区别的;null在oracle中和字符串连接返回字符串,sql返回null(见参数CONCAT_NULL_YIELDS_NULL)
3、语句的结束符:oracle是分号或者/,sql可以是分号也可以不使用
4、大小写敏感性:oracle对表的定义等是大小写不敏感的(除了用双引号之外),对字符串是敏感的,sql是需要根据排序规则确定是否敏感
5、事务:oracle在dml操作之后需要commit或者rollback,sql不需要。sql的事务控制是使用BEGIN TRAN/TRANSACTION和COMMIT/ROLLBACK TRAN/TRANSACTION|[WORK]。
6、赋值:oracle使用:=,sql使用=,且需要加set关键字。
select赋值:oracle是用into,sql是@var=xxx;当查询无数据或多于一条数据时,oracle报错,sql不报错,对于无数据返回初始值,对于多条数据时循环赋值。
7、if判断:oracle是if..then..else..end if,sql是if..begin..end else..,sql有if exists的写法
8、CURSOR的使用:oracle是cursor v_cur is select ...,最后close cur;sql是DECLARE sql_cursor(此处的变量不能用@开头) CURSOR FOR SELECT ...,最后close并且DEALLOCATE,
sql中cursor变量的赋值是set @cur = cursor for select ...。
sql中cursor 数据类型只能用于 OUTPUT 参数,必须同时指定 VARYING 和 OUTPUT 关键字。
9、过程的参数:oracle是in/out,写在数据类型之前,sql是output,写在数据类型之后,且在调用时也需要显式指定而不仅是在过程定义时。
oracle参数不需要指定长度,sql需要,否则默认是1(varchar)或者18(numeric),包括返回值也是一样。
oracle入参不能修改,sql可以修改。
23、过程/函数:结构:oracle必须有begin..end,sql的过程可以不使用,但函数必须有(标量函数和多语句表值函数,内联表值函数不能有)
sql中存储过程可以省略带默认值的参数,而函数则不行,必须指定DEFAULT关键字来代替。
ORACLE的过程可以有return,但其后不能跟表达式;sql的过程可以有return,且可以跟表达式,不显式指定返回值时,执行成功返回0,失败返回1(即使显式指定)
10、异常处理:oracle是用exception,sql是用@@error或者try...catch(begin try ... end try begin catch ... end catch)
在不捕获异常的情况下,oracle不会继续往下执行后面的语句,sql会
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8367589/viewspace-730091/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8367589/viewspace-730091/