您的位置:首页 > 编程语言

写了一个package,可以自动生成"表的增删改的存储过程代码",要的留个email

2007-01-18 12:44 274 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/zqb296yslz/article/details/1486574

 1在写巡视相关存储过程时,写了一个存储过程,可以根据数据字典表dba_cons_columns(表列)和user_tab_columns(索引列)的关于某张表的列定义和索引定义,生成相应表增删除改的代码
<1>zqb_code_gen.genPackage('CUX_PATROL_PLAN');
可以根据传入的表名,自动生成带DO_INSERT,DO_UPDATE,DO_DELETE的方的package和pacakage body
<2>zqb_code_gen.genInsert('INSERT_PATROL_PLAN','CUX_PATROL_PLAN');
可以根据传入的的表名,生成指定名称的insert功能的存储过程;
<3>zqb_code_gen.genUpdate('UPDATE_PATROL_PLAN','CUX_PATROL_PLAN');
可以根据传入的的表名,生成指定名称的update功能的存储过程;
<4>zqb_code_gen.genDelete('DELETE_PATROL_PLAN','CUX_PATROL_PLAN');
可以根据传入的的表名,生成指定名称的delete功能的存储过程;
--------------------------------
调用过程:
1建立表
2建立索引,主键索引和联合主键索引需要PK_打头
3在表所在的相同表空间中 create or replace zqb_code_gen;

调用例子:
begin
zqb_code_gen.genPackage('CUX_PATROL_PLAN');
zqb_code_gen.genInsert('INSERT_PATROL_PLAN','CUX_PATROL_PLAN');
zqb_code_gen.genUpdate('UPDATE_PATROL_PLAN','CUX_PATROL_PLAN');
zqb_code_gen.genDelete('DELETE_PATROL_PLAN','CUX_PATROL_PLAN');
end;
-----------------------------------------
输出结果:
package CUX_PATROL_PLAN_PKG is
  -- Author  : zhangqiaobo ,yslzyhpt
  -- Created : 2005-12-15 16:05:15
  -- Purpose :
  PROCEDURE DO_INSERT(
                P_PATROL_ID NUMBER,
                P_PATROL_NUMBER VARCHAR2,
                P_DEPT_ID NUMBER,
                P_PATROL_TYPE VARCHAR2,
                P_LINE_NAMES VARCHAR2,
                P_LINE_IDS VARCHAR2,
                P_PLAN_START_TIME DATE,
                P_PLAN_END_TIME DATE,
                P_FUNCTIONARY_NAME VARCHAR2,
                P_FUNCTIONARY_ID NUMBER,
                P_SAFTY_GUARDIAN_NAME VARCHAR2,
                P_SAFTY_GUARDIAN_ID NUMBER,
                P_WORKUSER_NAMES VARCHAR2,
                P_WORKUSER_IDS VARCHAR2,
                P_WORK_SCOPE_NAMES VARCHAR2,
                P_VEHICLES VARCHAR2,
                P_REPORTER_ID NUMBER,
                P_REPORT_TIME DATE,
                P_FACT_START_TIME DATE,
                P_FACT_END_TIME DATE,
                P_PLAN_SIGNER_ID NUMBER,
                P_PLAN_SIGN_TIME DATE,
                P_WORK_RESULT VARCHAR2,
                P_WORK_LEFT VARCHAR2,
                P_FUNCTIONARY_SIGN NUMBER,
                P_FUNCTIONARY_SIGN_TIME DATE,
                P_TASK_STATE VARCHAR2,
                P_ORGANIZATION_ID NUMBER,
                P_LAST_UPDATE_LOGIN NUMBER,
                P_CREATION_DATE DATE,
                P_CREATED_BY NUMBER,
                P_LAST_UPDATE_DATE DATE,
                P_LAST_UPDATED_BY NUMBER
              ) ;
PROCEDURE DO_UPDATE(
                P_PATROL_ID NUMBER,
                P_PATROL_NUMBER VARCHAR2,
                P_DEPT_ID NUMBER,
                P_PATROL_TYPE VARCHAR2,
                P_LINE_NAMES VARCHAR2,
                P_LINE_IDS VARCHAR2,
                P_PLAN_START_TIME DATE,
                P_PLAN_END_TIME DATE,
                P_FUNCTIONARY_NAME VARCHAR2,
                P_FUNCTIONARY_ID NUMBER,
                P_SAFTY_GUARDIAN_NAME VARCHAR2,
                P_SAFTY_GUARDIAN_ID NUMBER,
                P_WORKUSER_NAMES VARCHAR2,
                P_WORKUSER_IDS VARCHAR2,
                P_WORK_SCOPE_NAMES VARCHAR2,
                P_VEHICLES VARCHAR2,
                P_REPORTER_ID NUMBER,
                P_REPORT_TIME DATE,
                P_FACT_START_TIME DATE,
                P_FACT_END_TIME DATE,
                P_PLAN_SIGNER_ID NUMBER,
                P_PLAN_SIGN_TIME DATE,
                P_WORK_RESULT VARCHAR2,
                P_WORK_LEFT VARCHAR2,
                P_FUNCTIONARY_SIGN NUMBER,
                P_FUNCTIONARY_SIGN_TIME DATE,
                P_TASK_STATE VARCHAR2,
                P_ORGANIZATION_ID NUMBER,
                P_LAST_UPDATE_LOGIN NUMBER,
                P_CREATION_DATE DATE,
                P_CREATED_BY NUMBER,
                P_LAST_UPDATE_DATE DATE,
                P_LAST_UPDATED_BY NUMBER
              ) ;
PROCEDURE DO_DELETE(
                P_PATROL_ID NUMBER
              ) ;
end CUX_PATROL_PLAN_PKG;
package body CUX_PATROL_PLAN_PKG is
  -- Author  : zhangqiaobo ,yslzyhpt
  -- Created : 2005-12-15 16:05:15
  -- Purpose :
  PROCEDURE DO_INSERT(
                P_PATROL_ID NUMBER,
                P_PATROL_NUMBER VARCHAR2,
                P_DEPT_ID NUMBER,
                P_PATROL_TYPE VARCHAR2,
                P_LINE_NAMES VARCHAR2,
                P_LINE_IDS VARCHAR2,
                P_PLAN_START_TIME DATE,
                P_PLAN_END_TIME DATE,
                P_FUNCTIONARY_NAME VARCHAR2,
                P_FUNCTIONARY_ID NUMBER,
                P_SAFTY_GUARDIAN_NAME VARCHAR2,
                P_SAFTY_GUARDIAN_ID NUMBER,
                P_WORKUSER_NAMES VARCHAR2,
                P_WORKUSER_IDS VARCHAR2,
                P_WORK_SCOPE_NAMES VARCHAR2,
                P_VEHICLES VARCHAR2,
                P_REPORTER_ID NUMBER,
                P_REPORT_TIME DATE,
                P_FACT_START_TIME DATE,
                P_FACT_END_TIME DATE,
                P_PLAN_SIGNER_ID NUMBER,
                P_PLAN_SIGN_TIME DATE,
                P_WORK_RESULT VARCHAR2,
                P_WORK_LEFT VARCHAR2,
                P_FUNCTIONARY_SIGN NUMBER,
                P_FUNCTIONARY_SIGN_TIME DATE,
                P_TASK_STATE VARCHAR2,
                P_ORGANIZATION_ID NUMBER,
                P_LAST_UPDATE_LOGIN NUMBER,
                P_CREATION_DATE DATE,
                P_CREATED_BY NUMBER,
                P_LAST_UPDATE_DATE DATE,
                P_LAST_UPDATED_BY NUMBER
              ) is
  BEGIN
   INSERT INTO CUX_PATROL_PLAN(

                PATROL_ID,
                PATROL_NUMBER,
                DEPT_ID,
                PATROL_TYPE,
                LINE_NAMES,
                LINE_IDS,
                PLAN_START_TIME,
                PLAN_END_TIME,
                FUNCTIONARY_NAME,
                FUNCTIONARY_ID,
                SAFTY_GUARDIAN_NAME,
                SAFTY_GUARDIAN_ID,
                WORKUSER_NAMES,
                WORKUSER_IDS,
                WORK_SCOPE_NAMES,
                VEHICLES,
                REPORTER_ID,
                REPORT_TIME,
                FACT_START_TIME,
                FACT_END_TIME,
                PLAN_SIGNER_ID,
                PLAN_SIGN_TIME,
                WORK_RESULT,
                WORK_LEFT,
                FUNCTIONARY_SIGN,
                FUNCTIONARY_SIGN_TIME,
                TASK_STATE,
                ORGANIZATION_ID,
                LAST_UPDATE_LOGIN,
                CREATION_DATE,
                CREATED_BY,
                LAST_UPDATE_DATE,
                LAST_UPDATED_BY
              ) VALUES(
                P_PATROL_ID,
                P_PATROL_NUMBER,
                P_DEPT_ID,
                P_PATROL_TYPE,
                P_LINE_NAMES,
                P_LINE_IDS,
                to_date(P_PLAN_START_TIME,'yyyy-mm-dd hh24:mi:ss'),
                to_date(P_PLAN_END_TIME,'yyyy-mm-dd hh24:mi:ss'),
                P_FUNCTIONARY_NAME,
                P_FUNCTIONARY_ID,
                P_SAFTY_GUARDIAN_NAME,
                P_SAFTY_GUARDIAN_ID,
                P_WORKUSER_NAMES,
                P_WORKUSER_IDS,
                P_WORK_SCOPE_NAMES,
                P_VEHICLES,
                P_REPORTER_ID,
                to_date(P_REPORT_TIME,'yyyy-mm-dd hh24:mi:ss'),
                to_date(P_FACT_START_TIME,'yyyy-mm-dd hh24:mi:ss'),
                to_date(P_FACT_END_TIME,'yyyy-mm-dd hh24:mi:ss'),
                P_PLAN_SIGNER_ID,
                to_date(P_PLAN_SIGN_TIME,'yyyy-mm-dd hh24:mi:ss'),
                P_WORK_RESULT,
                P_WORK_LEFT,
                P_FUNCTIONARY_SIGN,
                to_date(P_FUNCTIONARY_SIGN_TIME,'yyyy-mm-dd hh24:mi:ss'),
                P_TASK_STATE,
                P_ORGANIZATION_ID,
                P_LAST_UPDATE_LOGIN,
                to_date(P_CREATION_DATE,'yyyy-mm-dd hh24:mi:ss'),
                P_CREATED_BY,
                to_date(P_LAST_UPDATE_DATE,'yyyy-mm-dd hh24:mi:ss'),
                P_LAST_UPDATED_BY
              );
      COMMIT;
      --异常处理:
      EXCEPTION WHEN OTHERS THEN
          rollback;
   end DO_INSERT;
PROCEDURE DO_UPDATE(
                P_PATROL_ID NUMBER,
                P_PATROL_NUMBER VARCHAR2,
                P_DEPT_ID NUMBER,
                P_PATROL_TYPE VARCHAR2,
                P_LINE_NAMES VARCHAR2,
                P_LINE_IDS VARCHAR2,
                P_PLAN_START_TIME DATE,
                P_PLAN_END_TIME DATE,
                P_FUNCTIONARY_NAME VARCHAR2,
                P_FUNCTIONARY_ID NUMBER,
                P_SAFTY_GUARDIAN_NAME VARCHAR2,
                P_SAFTY_GUARDIAN_ID NUMBER,
                P_WORKUSER_NAMES VARCHAR2,
                P_WORKUSER_IDS VARCHAR2,
                P_WORK_SCOPE_NAMES VARCHAR2,
                P_VEHICLES VARCHAR2,
                P_REPORTER_ID NUMBER,
                P_REPORT_TIME DATE,
                P_FACT_START_TIME DATE,
                P_FACT_END_TIME DATE,
                P_PLAN_SIGNER_ID NUMBER,
                P_PLAN_SIGN_TIME DATE,
                P_WORK_RESULT VARCHAR2,
                P_WORK_LEFT VARCHAR2,
                P_FUNCTIONARY_SIGN NUMBER,
                P_FUNCTIONARY_SIGN_TIME DATE,
                P_TASK_STATE VARCHAR2,
                P_ORGANIZATION_ID NUMBER,
                P_LAST_UPDATE_LOGIN NUMBER,
                P_CREATION_DATE DATE,
                P_CREATED_BY NUMBER,
                P_LAST_UPDATE_DATE DATE,
                P_LAST_UPDATED_BY NUMBER
              ) is
  BEGIN
   UPDATE CUX_PATROL_PLAN

      SET
                PATROL_ID = P_PATROL_ID,
                PATROL_NUMBER = P_PATROL_NUMBER,
                DEPT_ID = P_DEPT_ID,
                PATROL_TYPE = P_PATROL_TYPE,
                LINE_NAMES = P_LINE_NAMES,
                LINE_IDS = P_LINE_IDS,
                PLAN_START_TIME = to_date(P_PLAN_START_TIME,'yyyy-mm-dd hh24:mi:ss'),
                PLAN_END_TIME = to_date(P_PLAN_END_TIME,'yyyy-mm-dd hh24:mi:ss'),
                FUNCTIONARY_NAME = P_FUNCTIONARY_NAME,
                FUNCTIONARY_ID = P_FUNCTIONARY_ID,
                SAFTY_GUARDIAN_NAME = P_SAFTY_GUARDIAN_NAME,
                SAFTY_GUARDIAN_ID = P_SAFTY_GUARDIAN_ID,
                WORKUSER_NAMES = P_WORKUSER_NAMES,
                WORKUSER_IDS = P_WORKUSER_IDS,
                WORK_SCOPE_NAMES = P_WORK_SCOPE_NAMES,
                VEHICLES = P_VEHICLES,
                REPORTER_ID = P_REPORTER_ID,
                REPORT_TIME = to_date(P_REPORT_TIME,'yyyy-mm-dd hh24:mi:ss'),
                FACT_START_TIME = to_date(P_FACT_START_TIME,'yyyy-mm-dd hh24:mi:ss'),
                FACT_END_TIME = to_date(P_FACT_END_TIME,'yyyy-mm-dd hh24:mi:ss'),
                PLAN_SIGNER_ID = P_PLAN_SIGNER_ID,
                PLAN_SIGN_TIME = to_date(P_PLAN_SIGN_TIME,'yyyy-mm-dd hh24:mi:ss'),
                WORK_RESULT = P_WORK_RESULT,
                WORK_LEFT = P_WORK_LEFT,
                FUNCTIONARY_SIGN = P_FUNCTIONARY_SIGN,
                FUNCTIONARY_SIGN_TIME = to_date(P_FUNCTIONARY_SIGN_TIME,'yyyy-mm-dd hh24:mi:ss'),
                TASK_STATE = P_TASK_STATE,
                ORGANIZATION_ID = P_ORGANIZATION_ID,
                LAST_UPDATE_LOGIN = P_LAST_UPDATE_LOGIN,
                CREATION_DATE = to_date(P_CREATION_DATE,'yyyy-mm-dd hh24:mi:ss'),
                CREATED_BY = P_CREATED_BY,
                LAST_UPDATE_DATE = to_date(P_LAST_UPDATE_DATE,'yyyy-mm-dd hh24:mi:ss'),
                LAST_UPDATED_BY = P_LAST_UPDATED_BY
    WHERE

  PATROL_ID = P_PATROL_ID ;
      COMMIT;
      --异常处理:
      EXCEPTION WHEN OTHERS THEN
          rollback;
  END DO_UPDATE;
PROCEDURE DO_DELETE(
                P_PATROL_ID NUMBER
              ) is
  BEGIN
      delete CUX_PATROL_PLAN where
  PATROL_ID = P_PATROL_ID ;
      COMMIT;
      --异常处理:
      EXCEPTION WHEN OTHERS THEN
          rollback;
  END DO_DELETE;
end CUX_PATROL_PLAN_PKG;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: