来到联友有两个月了,对联友MP的使用那是血泪史啊,自学真的要点记性。
先来说一些规范,web的界面按钮,一般规范是【清除】最右边,【查询】最左边,中间放操作。
写惯了sql语句后加“;”的码农们,应该注意MP源代码不要在后面加“;”,因为语句后面需要添加查询条件。
页面数据应注意时间的表达方式,也就是to_date()和to_char()的使用,如:to_char(to_date('#FUTURE_MON#','yyyy-MM'),'yyyyMM')。
让我耗时最久的就是MP的【导入】,这是一个坑
首先导入需要添加数据到表:t_bu_import_colmap(导入列表),如:insert into t_bu_import_colmap values('物料***导入','物料编码','VAR1',1);
然后在MP中拿到import_id和导入类型(物料***导入')的数据才能进行导入操作,否则导入就会有莫名其妙的错误。
在实现功能中,增删改查只有查只需要单纯的sql语句就行了,但是增删改就需要运用到存储过程了,在这里给一个最基础的存储过程:
create or replace procedure p_update_test_release(i_hasten_id in varchar2, /*催交结案申请ID,多个时用','分隔*/ i_user_id in varchar2,
O_MESSAGE out VARCHAR2,
O_RESULT out VARCHAR2) is /***********************************************************************************
NAME: p_update_hasten_release
DESC: 催交与结案发布
REVISIONS:
VER DATE AUTHOR DESCRIPTION
--------- ---------- --------------- ------------------------------------
1.0 2017/03/03 test 1. CREATED THIS PROCEDURE.
NOTES:
EDIT BY
***********************************************************************************/
c_isdebug number default 1; -- 调试模式:1 为调试模式
C_MYNAME VARCHAR2(100) := 'p_update_hasten_release'; /*催交与结案发布*/
V_STEP NUMBER;
begin V_STEP := 1;
--1.写日志
logger_application_error(C_MYNAME, '开始', '成功', '成功'); /*初始化变量*/ /*========================================================*/
V_STEP := 2;
O_RESULT := 1;
O_MESSAGE := '发布成功!';
/*========================================================*/
if 1 = 1 then /*判断数据的合理性(非空、时间等)*/
IF i_hasten_id IS NULL THEN
O_RESULT := 0;
O_MESSAGE := '催交结案申请ID[i_hasten_id]不能为空!';
LOGGER_APPLICATION_ERROR(C_MYNAME, V_STEP, '异常', O_MESSAGE);
RETURN;
END IF;
end if;
exception
when others then
rollback;
if c_isdebug = 1 then
dbms_output.put_line(sqlerrm);
end if;
--(写日志调用方法 LOGGER_APPLICATION_ERROR(存储过程名, '执行中', '失败', 异常说明))
LOGGER_APPLICATION_ERROR(C_MYNAME, V_STEP, '异常', SQLERRM);
COMMIT;
end;