Oracle到mysql转换的问题总结(3)

2019-08-29 00:08

afterImg VARCHAR2(2000); action VARCHAR2(10); action_module VARCHAR2(10); info_category VARCHAR2(20); BEGIN

action_module := 'IM'; info_category := 'duty';

befImg := '[DUTY_ID]' || :old.duty_id || '[DUTY_NAME]' || :old.duty_name; afterImg := '[DUTY_ID]' || :new.duty_id || '[DUTY_NAME]' || :new.duty_name;

IF (:old.duty_id is null) THEN action := 'Insert'; befImg := '';

INSERT INTO MOCHA_IM_AUDIT_LOG (ACTION_TIMESTAMP, ACTION, ACTION_MODULE, INFO_CATEGORY, BEFORE_IMAGE, AFTER_IMAGE) VALUES (SYSDATE, action, action_module, info_category, befImg, afterImg);

ELSIF (:new.duty_id is null) THEN action := 'Delete'; afterImg := '';

INSERT INTO MOCHA_IM_AUDIT_LOG (ACTION_TIMESTAMP, ACTION, ACTION_MODULE, INFO_CATEGORY, BEFORE_IMAGE, AFTER_IMAGE) VALUES (SYSDATE, action, action_module, info_category, befImg, afterImg);

ELSE

action := 'Update';

IF(befImg != afterImg) THEN

INSERT INTO MOCHA_IM_AUDIT_LOG (ACTION_TIMESTAMP, ACTION, ACTION_MODULE, INFO_CATEGORY, BEFORE_IMAGE, AFTER_IMAGE) VALUES (SYSDATE, action, action_module, info_category, befImg, afterImg);

END IF; END IF; EXCEPTION

WHEN OTHERS then befImg := ''; end; /

mysql下:

CREATE TRIGGER MOCHA_IM_DUTY_TRG_INSERT BEFORE INSERT ON MOCHA_IM_DUTY FOR EACH ROW BEGIN

DECLARE befImg VARCHAR(2000); DECLARE afterImg VARCHAR(2000); DECLARE action VARCHAR(10); DECLARE action_module VARCHAR(10); DECLARE info_category VARCHAR(20);

DECLARE exit HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND begin

set befImg = ''; end;

set action_module = 'IM'; set info_category = 'duty';

set afterImg =CONCAT( '[DUTY_ID]' , new.duty_id , '[DUTY_NAME]' , new.duty_name);

set action = 'Insert';

set befImg = '';

INSERT INTO MOCHA_IM_AUDIT_LOG (ACTION_TIMESTAMP, ACTION, ACTION_MODULE, INFO_CATEGORY, BEFORE_IMAGE, AFTER_IMAGE) VALUES (now(), action, action_module, info_category, befImg, afterImg);

end; /

CREATE TRIGGER MOCHA_IM_DUTY_TRG_DEL BEFORE DELETE ON MOCHA_IM_DUTY FOR EACH ROW BEGIN

DECLARE befImg VARCHAR(2000); DECLARE afterImg VARCHAR(2000); DECLARE action VARCHAR(10); DECLARE action_module VARCHAR(10); DECLARE info_category VARCHAR(20);

DECLARE exit HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND begin

set befImg = ''; end;

set action_module = 'IM'; set info_category = 'duty';

set befImg = CONCAT('[DUTY_ID]' , old.duty_id , '[DUTY_NAME]' , old.duty_name); set action = 'Delete'; set afterImg = '';

INSERT INTO MOCHA_IM_AUDIT_LOG (ACTION_TIMESTAMP, ACTION, ACTION_MODULE, INFO_CATEGORY, BEFORE_IMAGE, AFTER_IMAGE) VALUES (now(), action, action_module, info_category, befImg, afterImg);

end; /

CREATE TRIGGER MOCHA_IM_DUTY_TRG_UPDATE BEFORE UPDATE ON MOCHA_IM_DUTY FOR EACH ROW BEGIN

DECLARE befImg VARCHAR(2000); DECLARE afterImg VARCHAR(2000); DECLARE action VARCHAR(10); DECLARE action_module VARCHAR(10); DECLARE info_category VARCHAR(20);

DECLARE exit HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND begin

set befImg = ''; end;

set action_module = 'IM'; set info_category = 'duty';

set befImg = CONCAT('[DUTY_ID]' , old.duty_id , '[DUTY_NAME]' , old.duty_name); set afterImg =CONCAT( '[DUTY_ID]' , new.duty_id , '[DUTY_NAME]' , new.duty_name);

IF (old.duty_id is null) THEN set action = 'Insert';

set befImg = '';

ELSEIF (new.duty_id is null) THEN set action = 'Delete'; set afterImg = ''; ELSE

set action = 'Update'; IF(befImg != afterImg) THEN

INSERT INTO MOCHA_IM_AUDIT_LOG (ACTION_TIMESTAMP, ACTION, ACTION_MODULE, INFO_CATEGORY, BEFORE_IMAGE, AFTER_IMAGE) VALUES (now(), action, action_module, info_category, befImg, afterImg);

END IF; END IF; end; /

在声过程和函数时注意过程支持inout参数函数不支持,mysql下函数是returns

Oracle下过程:

create or replace procedure MOCHA_FE_OPEN_DOC_SP(v_sql VARCHAR2) IS begin

execute immediate ' insert into MOCHA_FE_DOC_BODY_TEMP '||v_sql; end MOCHA_FE_OPEN_DOC_SP; /

Mysql下:

create procedure MOCHA_FE_OPEN_DOC_SP(v_sql VARCHAR(200))


Oracle到mysql转换的问题总结(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:卫生系统面试题及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: