项目中存储过程函数

1.

create or replace procedure PROC_CHECK(Insert_by VARCHAR) IS

v_OID VARCHAR2(36);



begin

  

declare

       --类型定义

       cursor c_check

       is

       select dep_oid,oms_user_oid

       from dcjetframework.v_oms_user;

       --定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型

       c_row c_check%rowtype;

begin

       for c_row in c_check loop

        -- dbms_output.put_line(c_row.dep_oid||'-'||c_row.oms_user_oid);

        v_OID:=sys_guid();

        INSERT INTO T_OMS_DEVICE_CHECK(OID,DEPT_OID,User_Oid,INSERT_BY)

        VALUES(v_OID,c_row.dep_oid,c_row.oms_user_oid,Insert_by);

        

       INSERT INTO t_oms_device_check_detail(check_oid,device_oid,insert_by)

       

       SELECT v_OID,OID,Insert_by

         

        FROM v_oms_check WHERE Dep_Oid=c_row.dep_oid AND APPLICANT=c_row.oms_user_oid ;

        

        

        

       end loop;

       COMMIT;

end;

2.

create or replace procedure proc_approve(P_OID IN Varchar2, P_Insert_By IN Varchar2,P_operation_type VARCHAR2) is

 v_stg Varchar2(50);

BEGIN

  IF P_operation_type='11' THEN

       BEGIN

            SELECT t.WAREHOUSE_OID INTO v_stg FROM T_OMS_DEVICE_REGIST_LOG t WHERE t.DEVICE_OID=P_OID AND t.operation_type='13' AND ROWNUM=1

            ORDER BY t.INSERT_time DESC;     

            UPDATE  T_OMS_DEVICE_REGIST t SET t.scrapping_status='2',t.warehouse_oid=v_stg,t.status='9',t.SCRAPED_TIME=SYSDATE WHERE t.OID=P_OID;

            INSERT INTO T_OMS_DEVICE_REGIST_LOG VALUES( sys_guid(),P_OID,P_operation_type,'报废审批通过',v_stg,Sysdate,'',P_Insert_By,Sysdate);

            COMMIT;  

       END;

  ELSIF P_operation_type='12' THEN

    BEGIN

       UPDATE  T_OMS_DEVICE_REGIST t SET t.scrapping_status='3' WHERE t.OID=P_OID;

       INSERT INTO T_OMS_DEVICE_REGIST_LOG VALUES( sys_guid(),P_OID,P_operation_type,'报废审批不通过','',Sysdate,'',P_Insert_By,Sysdate);

        COMMIT;   

   END;

   END IF; 

     

end proc_approve;

3.

create or replace procedure proc_check_confirm(check_oid VARCHAR2) is

begin

  UPDATE t_oms_device_check SET confirm_satus='1',CONFIRM_TIME=SYSDATE WHERE OID=check_oid;

end proc_check_confirm;

4.

create or replace procedure PROC_DESTROY_DELETE(p_headOid VARCHAR2,p_result OUT VARCHAR2) IS

BEGIN



  SELECT status INTO p_result  FROM  t_oms_device_destroy WHERE OID=p_headOid AND rownum=1;

  IF p_result='2' THEN

    BEGIN

      RETURN;

    END;

  END IF;

  p_result:='1';

  DELETE FROM t_oms_device_destroy WHERE OID=p_headOid;

  UPDATE t_oms_device_regist SET STATUS='9' , DESTROY_OID='' WHERE destroy_oid=p_headOid;

  DELETE FROM t_oms_device_regist_attachment WHERE device_oid=p_headOid;

  COMMIT;

end PROC_DESTROY_DELETE;

5.

create or replace function get_Destroy_no return varchar2 is

  Result varchar2(50);

begin



  SELECT max(destroy_no) INTO RESULT FROM t_oms_device_destroy WHERE   substr(destroy_no,0,8)= to_char( SYSDATE  ,'yyyymmdd');

 IF (RESULT =''OR RESULT IS NULL) THEN 



           RESULT:=(to_char( SYSDATE  ,'yyyymmdd')||'001');

           

     

else 

  RESULT:=to_number(RESULT)+1;

END IF;

  



      RETURN( Result);



  

end get_Destroy_no;

 

你可能感兴趣的:(存储过程)