MP使用过程中常犯错误1

来到联友有两个月了,对联友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;

posted on 2017-03-06 15:37  攻速鞋  阅读(350)  评论(0编辑  收藏  举报

导航