Oracle Procedure示例05


CREATE OR REPLACE 
PACKAGE XXSC_UTIL_PKG
  IS
    /*---------------------------------------------------------
      Current Version : 1.00      
      Create By       : 
      Create Date     : 
      Purpose         : 
      Logicality      :
    ---------------------------------------------------------*/
   PROCEDURE insert_log
     ( 
      p_system_name       IN   VARCHAR2,
      p_org_type          IN   VARCHAR2 DEFAULT NULL,
      p_org_name          IN   VARCHAR2 DEFAULT NULL,
      p_log_type          IN   VARCHAR2 DEFAULT NULL,
      p_log_code          IN   VARCHAR2 DEFAULT NULL,
      p_log_content       IN   VARCHAR2 DEFAULT NULL,
      p_mail_send         IN   VARCHAR2 DEFAULT '0',
      p_mail_list         IN   VARCHAR2 DEFAULT NULL,
      p_document_number   IN   VARCHAR2 DEFAULT NULL,
      p_time              IN   DATE     DEFAULT SYSDATE,
      p_attribute1        IN   VARCHAR2 DEFAULT NULL,
      p_attribute2        IN   VARCHAR2 DEFAULT NULL,
      p_attribute3        IN   VARCHAR2 DEFAULT NULL,
      p_attribute4        IN   VARCHAR2 DEFAULT NULL,
      p_attribute5        IN   VARCHAR2 DEFAULT NULL);       

   PROCEDURE dbms_output_lines (p_sql_code IN VARCHAR2);
END; -- Package spec
/

CREATE OR REPLACE 
PACKAGE BODY XXSC_UTIL_PKG
IS
    /*------------------------------------------------------------------------------
     Created by HI4/Robbie.Zhu on 2009-3-3
     Function:
                Create view for tranfering demantra data to ASCP.
     Logicality:
                this procedure use to insert log 
                
     Input:     
				
     Output:
		        null
   ------------------------------------------------------------------------------*/
   PROCEDURE insert_log (
      p_system_name       IN   VARCHAR2,
      p_org_type          IN   VARCHAR2 DEFAULT NULL,
      p_org_name          IN   VARCHAR2 DEFAULT NULL,
      p_log_type          IN   VARCHAR2 DEFAULT NULL,
      p_log_code          IN   VARCHAR2 DEFAULT NULL,
      p_log_content       IN   VARCHAR2 DEFAULT NULL,
      p_mail_send         IN   VARCHAR2 DEFAULT '0',
      p_mail_list         IN   VARCHAR2 DEFAULT NULL,
      p_document_number   IN   VARCHAR2 DEFAULT NULL,
      p_time              IN   DATE     DEFAULT SYSDATE,
      p_attribute1        IN   VARCHAR2 DEFAULT NULL,
      p_attribute2        IN   VARCHAR2 DEFAULT NULL,
      p_attribute3        IN   VARCHAR2 DEFAULT NULL,
      p_attribute4        IN   VARCHAR2 DEFAULT NULL,
      p_attribute5        IN   VARCHAR2 DEFAULT NULL
   )
   IS
      v_id        NUMBER           := -1;
      v_date_time DATE;
      v_rowid     ROWID;
   BEGIN
      
      IF (p_system_name IS NOT NULL AND p_mail_send IS NOT NULL)
      THEN
         SELECT apps.xxsc_log_s.NEXTVAL
           INTO v_id
           FROM DUAL;

         v_date_time := NVL(p_time,SYSDATE);

         INSERT INTO apps.xxsc_log_pub
                    (ID
                    
                     ,system_name
                     ,org_name
                     ,org_type
                     ,log_type
                     ,log_code
                     ,log_content
                     ,mail_send
                     ,mail_name
                     ,date_time
                     ,document_number
                     ,attribute1
                     ,attribute2
                     ,attribute3
                     ,attribute4
                     ,attribute5)
         VALUES      (v_id
                     ,p_system_name
                     ,p_org_name
                     ,p_org_type
                     ,p_log_type
                     ,p_log_code
                     ,p_log_content
                     ,p_mail_send
                     ,p_mail_list
                     ,v_date_time
                     ,p_document_number
                     ,p_attribute1
                     ,p_attribute2
                     ,p_attribute3
                     ,p_attribute4
                     ,p_attribute5)
                     returning rowid into v_rowid;         

         COMMIT;
      END IF;
   EXCEPTION
      WHEN OTHERS THEN
      dbms_output.put_line(sqlerrm);
      ROLLBACK;
      RAISE;
   END;
   
   
   /*---------------------------------------------------------
    Created by 
    FUNCTION:
               DBMS_OUTPUT.put_line muilt lines
    LOGICALITY:
               
    INPUT:
               p_bol_output        table_name
               p_sql_code          level_id
    OUTPUT:               
    ---------------------------------------------------------*/
    PROCEDURE dbms_output_lines (p_sql_code IN VARCHAR2)
    IS
       ipos   NUMBER (5);
    BEGIN
      ipos := 1;

      WHILE ipos <= LENGTH (p_sql_code)
      LOOP
         DBMS_OUTPUT.put_line (SUBSTR (p_sql_code, ipos, 255));
         ipos := ipos + 255;
      END LOOP;
      DBMS_OUTPUT.put_line ('*********************************************');
    END;

END;
/




發佈了24 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章