Oracle Procedure示例05

来源:互联网 发布:js设置隐藏 编辑:程序博客网 时间:2024/06/05 09:38


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_PKGIS    /*------------------------------------------------------------------------------     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;/