没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
MySQL与与Oracle差异比较之五存储过程差异比较之五存储过程&Function
主要介绍了MySQL与Oracle差异比较之五存储过程&Function,需要的朋友可以参考下
存储过程&Function
编
号
类别 ORACLE MYSQL 注释
1
创建存储过程语句
不同
create or replace procedure
P_ADD_FAC(
id_fac_cd IN
ES_FAC_UNIT.FAC_CD%TYPE) is
DROP PROCEDURE IF EXISTS
`SD_USER_P_ADD_USR`;
create procedure P_ADD_FAC(
id_fac_cd varchar(100))
1.在创建存储过程时如果存在同名的存
储过程,会删除老的存储过程.
oracle使用create or replace.
mysql使用先删除老的存储过程,然后再
创建新的存储过程.
2. oracle 存储过程可以定义在package
中,也可以定义在Procedures中. 如果定
义在包中,一个包中可以包含多个存储过
程和方法.如果定义在Procedures中,存
储过程中不可以定义多个存储过程.
Mysql 存储过程中不可以定义多个存
储过程.
3. oracle中字符串类型可以使用
varchar2.
Mysql 需要使用varchar
4. Oracle中参数varchar长度不是必须
的,
Mysql中参数varchar长度是必须的, 比
如varchar(100)
2 创建函数语句不同
CREATE OR
REPLACE FUNCTION
F_ROLE_FACS_GRP(
ii_role_int_key IN
SD_ROLE.ROLE_INT_KEY%TYPE
) RETURN VARCHAR2
DROP FUNCTION IF EXISTS
`SD_ROLE_F_ROLE_FACS_GRP`;
CREATE FUNCTION
`SD_ROLE_F_ROLE_FACS_GRP`(
ii_role_int_key INTEGER(10)
) RETURNSvarchar(1000)
1.在创建函数时如果存在同名的函数,会
删除老的函数.
oracle使用create or replace.
mysql使用先删除老的函数,然后再创建
新的函数.
2. oracle 函数可以定义在package中,也
可以定义在Functions中. 如果定义在包
中,一个包中可以包含多个存储过程和函
数.如果定义在Functions中,每个函数只
能定义一个函数.
Mysql Functions不可以定义多个函
数.
3. oracle返回值用return.
Mysql返回值用returns.
3 传入参数写法不同
procedure P_ADD_FAC(
id_fac_cd IN
ES_FAC_UNIT.FAC_CD%TYPE)
create procedure P_ADD_FAC(
(in) id_fac_cd varchar(100))
1. oracle存储过程参数可以定义为表的
字段类型.
Mysql存储过程不支持这种定义方法.
需要定义变量的实际类型和长度.
2. oracle 参数类型in/out/inout写在参数
名后面.
Mysql 参数类型in/out/inout写在参数
名前面.
3. oracle 参数类型in/out/inout 都必须写.
Mysql 参数类型如果是in,则可以省略.
如果是out或inout则不能省略.
注意: mysql中指定参数为IN, OUT, 或
INOUT 只对PROCEDURE是合法的。
(FUNCTION参数总是被认为是IN参
数) RETURNS字句只能对FUNCTION
做指定,对函数而言这是强制的。它用
来指定函数的返回类型,而且函数体必
须包含一个RETURN value语句。
function func_name(
gw_id in(out) varchar2 )
create function func_name(
gw_id varchar(100))
资源评论
weixin_38674512
- 粉丝: 0
- 资源: 889
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功