zoukankan      html  css  js  c++  java
  • Oracle 程序中超好用的日志记录TYPE,可以直接Copy使用

    创建类型名称:LOGGER_FACTORY 

    Type 说明:

    CREATE OR REPLACE TYPE "LOGGER_FACTORY" AS OBJECT
    (
    v_program_owner VARCHAR2(100),
    v_program_name VARCHAR2(100),
    v_program_lineno VARCHAR2(100),
    v_program_type VARCHAR2(100),
    v_sub_program_name VARCHAR2(100),
    v_program_param VARCHAR2(200),
    v_log_level NUMBER(1),
    v_logger_id NUMBER(10),
    CONSTRUCTOR FUNCTION logger_factory(pi_pkg_name IN VARCHAR2,
    pi_prc_name IN VARCHAR2,
    pi_iv_id IN VARCHAR2,
    pi_iv_planid IN VARCHAR2)
    RETURN SELF AS RESULT,
    CONSTRUCTOR FUNCTION logger_factory(pi_prc_name IN VARCHAR2 DEFAULT NULL, pi_parameters IN VARCHAR2 DEFAULT NULL)
    RETURN SELF AS RESULT,
    MEMBER PROCEDURE debug,
    MEMBER PROCEDURE debug(MESSAGE IN VARCHAR2),
    MEMBER PROCEDURE info(MESSAGE IN VARCHAR2),
    MEMBER PROCEDURE monitor(MESSAGE IN VARCHAR2),
    MEMBER PROCEDURE warn(MESSAGE IN VARCHAR2),
    MEMBER PROCEDURE error(MESSAGE IN VARCHAR2),
    MEMBER PROCEDURE error
    );

    Type 主体:

    CREATE OR REPLACE TYPE BODY "LOGGER_FACTORY"

    AS

       CONSTRUCTOR FUNCTION logger_factory(pi_pkg_name    IN VARCHAR2,

                                           pi_prc_name    IN VARCHAR2,

                                           pi_iv_id       IN VARCHAR2,

                                           pi_iv_planid   IN VARCHAR2)

          RETURN SELF AS RESULT

       IS

          v_log_level_name   VARCHAR2(10);

          v_records_count    NUMBER;

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          OWA_UTIL.who_called_me(v_program_owner,

                                 v_program_name,

                                 v_program_lineno,

                                 v_program_type);

          IF v_program_type = 'PACKAGE BODY'

          THEN

             v_sub_program_name   := UPPER(SUBSTR(pi_prc_name, 1, 100));

          END IF;

          v_program_param   := SUBSTR('IV_ID = ' || NVL(pi_iv_id, 'NULL') || ', IV_PLANID = ' || NVL(pi_iv_planid, 'NULL'), 1, 200);

          SELECT z_logger_id_seq.NEXTVAL INTO v_logger_id FROM DUAL;

          SELECT COUNT(1)

            INTO v_records_count

            FROM z_conf_log_level

           WHERE     program_owner = v_program_owner

                 AND program_name = v_program_name;

          IF v_records_count > 0

          THEN

             SELECT UPPER(TRIM(log_level))

               INTO v_log_level_name

               FROM z_conf_log_level

              WHERE     program_owner = v_program_owner

                    AND program_name = v_program_name

                    AND ROWNUM = 1;

          END IF;

          IF v_log_level_name IS NULL

          THEN

             SELECT COUNT(1)

               INTO v_records_count

               FROM z_conf_log_level

              WHERE     program_owner = v_program_owner

                    AND program_name IS NULL;

             IF v_records_count > 0

             THEN

                SELECT UPPER(TRIM(log_level))

                  INTO v_log_level_name

                  FROM z_conf_log_level

                 WHERE     program_owner = v_program_owner

                       AND program_name IS NULL

                       AND ROWNUM = 1;

             END IF;

          END IF;

          CASE v_log_level_name

             WHEN 'DEBUG'

             THEN

                v_log_level   := 4;

             WHEN 'INFO'

             THEN

                v_log_level   := 3;

             WHEN 'WARN'

             THEN

                v_log_level   := 2;

             WHEN 'ERROR'

             THEN

                v_log_level   := 1;

             ELSE

                v_log_level        := 3;

                v_log_level_name   := 'INFO';

          END CASE;

          INSERT INTO z_log(log_seq,

                            logger_id,

                            program_owner,

                            program_name,

                            sub_program_name,

                            program_lineno,

                            program_type,

                            program_param,

                            log_level,

                            log_message)

               VALUES (

                         z_log_seq.NEXTVAL,

                         v_logger_id,

                         v_program_owner,

                         v_program_name,

                         v_sub_program_name,

                         v_program_lineno,

                         v_program_type,

                         v_program_param,

                         'INIT:'||v_log_level_name,

                         'CALL FROM : (HOST=' || SYS_CONTEXT('USERENV', 'HOST') || ')(IP=' || SYS_CONTEXT('USERENV', 'IP_ADDRESS') || ')' || '(OS_USER = ' ||

                         SYS_CONTEXT                                                                                                                          (

                         'USERENV',

                         'OS_USER') || ') : ' || sys.login_user || '@' || sys.database_name || sys.instance_num);

          COMMIT;

          RETURN;

       END;

       CONSTRUCTOR FUNCTION logger_factory(pi_prc_name IN VARCHAR2 DEFAULT NULL, pi_parameters IN VARCHAR2 DEFAULT NULL)

          RETURN SELF AS RESULT

       IS

          v_log_level_name   VARCHAR2(10);

          v_records_count    NUMBER;

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          OWA_UTIL.who_called_me(v_program_owner,

                                 v_program_name,

                                 v_program_lineno,

                                 v_program_type);

          IF v_program_type = 'PACKAGE BODY'

          THEN

             v_sub_program_name   := UPPER(SUBSTR(pi_prc_name, 1, 100));

          END IF;

          v_program_param   := SUBSTR(pi_parameters, 1, 200);

          SELECT z_logger_id_seq.NEXTVAL INTO v_logger_id FROM DUAL;

          SELECT COUNT(1)

            INTO v_records_count

            FROM z_conf_log_level

           WHERE     program_owner = v_program_owner

                 AND program_name = v_program_name;

          IF v_records_count > 0

          THEN

             SELECT UPPER(TRIM(log_level))

               INTO v_log_level_name

               FROM z_conf_log_level

              WHERE     program_owner = v_program_owner

                    AND program_name = v_program_name

                    AND ROWNUM = 1;

          END IF;

          IF v_log_level_name IS NULL

          THEN

             SELECT COUNT(1)

               INTO v_records_count

               FROM z_conf_log_level

              WHERE     program_owner = v_program_owner

                    AND program_name IS NULL;

             IF v_records_count > 0

             THEN

                SELECT UPPER(TRIM(log_level))

                  INTO v_log_level_name

                  FROM z_conf_log_level

                 WHERE     program_owner = v_program_owner

                       AND program_name IS NULL

                       AND ROWNUM = 1;

             END IF;

          END IF;

          CASE v_log_level_name

             WHEN 'DEBUG'

             THEN

                v_log_level   := 4;

             WHEN 'INFO'

             THEN

                v_log_level   := 3;

             WHEN 'WARN'

             THEN

                v_log_level   := 2;

             WHEN 'ERROR'

             THEN

                v_log_level   := 1;

             ELSE

                v_log_level        := 3;

                v_log_level_name   := 'INFO';

          END CASE;

          INSERT INTO z_log(log_seq,

                            logger_id,

                            program_owner,

                            program_name,

                            sub_program_name,

                            program_lineno,

                            program_type,

                            program_param,

                            log_level,

                            log_message)

               VALUES (

                         z_log_seq.NEXTVAL,

                         v_logger_id,

                         v_program_owner,

                         v_program_name,

                         v_sub_program_name,

                         v_program_lineno,

                         v_program_type,

                         v_program_param,

                         'INIT:'||v_log_level_name,

                         'CALL FROM : (HOST=' || SYS_CONTEXT('USERENV', 'HOST') || ')(IP=' || SYS_CONTEXT('USERENV', 'IP_ADDRESS') || ')' || '(OS_USER = ' ||

                         SYS_CONTEXT                                                                                                                          (

                         'USERENV',

                         'OS_USER') || ') : ' || sys.login_user || '@' || sys.database_name || sys.instance_num);

          COMMIT;

          RETURN;

       END;

       MEMBER PROCEDURE debug

       IS

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          IF v_log_level >= 4

          THEN

             OWA_UTIL.who_called_me(v_program_owner,

                                    v_program_name,

                                    v_program_lineno,

                                    v_program_type);

             INSERT INTO z_log(log_seq,

                               logger_id,

                               program_owner,

                               program_name,

                               sub_program_name,

                               program_lineno,

                               program_type,

                               program_param,

                               log_level,

                               log_message)

                  VALUES (z_log_seq.NEXTVAL,

                          v_logger_id,

                          v_program_owner,

                          v_program_name,

                          v_sub_program_name,

                          v_program_lineno,

                          v_program_type,

                          v_program_param,

                          'DEBUG',

                          v_program_owner || '.' || v_program_name || ' : line ' || v_program_lineno);

             COMMIT;

          END IF;

       END;

       MEMBER PROCEDURE debug(MESSAGE VARCHAR2)

       IS

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          IF v_log_level >= 4

          THEN

             OWA_UTIL.who_called_me(v_program_owner,

                                    v_program_name,

                                    v_program_lineno,

                                    v_program_type);

             INSERT INTO z_log(log_seq,

                               logger_id,

                               program_owner,

                               program_name,

                               sub_program_name,

                               program_lineno,

                               program_type,

                               program_param,

                               log_level,

                               log_message)

                  VALUES (z_log_seq.NEXTVAL,

                          v_logger_id,

                          v_program_owner,

                          v_program_name,

                          v_sub_program_name,

                          v_program_lineno,

                          v_program_type,

                          v_program_param,

                          'DEBUG',

                          SUBSTR(MESSAGE, 1, 1024));

             COMMIT;

          END IF;

       END;

       MEMBER PROCEDURE info(MESSAGE VARCHAR2)

       IS

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          IF v_log_level >= 3

          THEN

             OWA_UTIL.who_called_me(v_program_owner,

                                    v_program_name,

                                    v_program_lineno,

                                    v_program_type);

             INSERT INTO z_log(log_seq,

                               logger_id,

                               program_owner,

                               program_name,

                               sub_program_name,

                               program_lineno,

                               program_type,

                               program_param,

                               log_level,

                               log_message)

                  VALUES (z_log_seq.NEXTVAL,

                          v_logger_id,

                          v_program_owner,

                          v_program_name,

                          v_sub_program_name,

                          v_program_lineno,

                          v_program_type,

                          v_program_param,

                          'INFO',

                          SUBSTR(MESSAGE, 1, 1024));

             COMMIT;

          END IF;

       END;

       MEMBER PROCEDURE monitor(MESSAGE VARCHAR2)

       IS

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          IF v_log_level >= 3

          THEN

             OWA_UTIL.who_called_me(v_program_owner,

                                    v_program_name,

                                    v_program_lineno,

                                    v_program_type);

             INSERT INTO z_log(log_seq,

                               logger_id,

                               program_owner,

                               program_name,

                               sub_program_name,

                               program_lineno,

                               program_type,

                               program_param,

                               log_level,

                               log_message)

                  VALUES (z_log_seq.NEXTVAL,

                          v_logger_id,

                          v_program_owner,

                          v_program_name,

                          v_sub_program_name,

                          v_program_lineno,

                          v_program_type,

                          v_program_param,

                          'INFO',

                          SUBSTR(MESSAGE, 1, 1024));

             COMMIT;

          END IF;

       END;

       MEMBER PROCEDURE warn(MESSAGE VARCHAR2)

       IS

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          IF v_log_level >= 2

          THEN

             OWA_UTIL.who_called_me(v_program_owner,

                                    v_program_name,

                                    v_program_lineno,

                                    v_program_type);

             INSERT INTO z_log(log_seq,

                               logger_id,

                               program_owner,

                               program_name,

                               sub_program_name,

                               program_lineno,

                               program_type,

                               program_param,

                               log_level,

                               log_message)

                  VALUES (z_log_seq.NEXTVAL,

                          v_logger_id,

                          v_program_owner,

                          v_program_name,

                          v_sub_program_name,

                          v_program_lineno,

                          v_program_type,

                          v_program_param,

                          'WARN',

                          SUBSTR(MESSAGE, 1, 1024));

             COMMIT;

          END IF;

       END;

       MEMBER PROCEDURE error(MESSAGE VARCHAR2)

       IS

          v_error_backtrace   VARCHAR2(1024);

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          IF v_log_level >= 1

          THEN

             --Sample of DBMS_UTILITY.format_error_stack:

             --ORA-06512: at "SPUSEROPAG.OF_REPORTS", line 209

             --ORA-06512: at "SPUSEROPAG.OF_REPORTS", line 3215

             v_error_backtrace   := SUBSTR(DBMS_UTILITY.format_error_backtrace, 1, 1024);

             OWA_UTIL.who_called_me(v_program_owner,

                                    v_program_name,

                                    v_program_lineno,

                                    v_program_type);

             INSERT INTO z_log(log_seq,

                               logger_id,

                               program_owner,

                               program_name,

                               sub_program_name,

                               program_lineno,

                               program_type,

                               program_param,

                               log_level,

                               log_message,

                               err_program_owner,

                               err_program_name,

                               err_program_lineno)

                  VALUES (

                            z_log_seq.NEXTVAL,

                            v_logger_id,

                            v_program_owner,

                            v_program_name,

                            v_sub_program_name,

                            v_program_lineno,

                            v_program_type,

                            v_program_param,

                            'ERROR',

                            SUBSTR(v_error_backtrace || DBMS_UTILITY.format_error_stack || CHR(10) || MESSAGE, 1, 1024),

                            SUBSTR(v_error_backtrace,

                                   INSTR(v_error_backtrace,

                                   '"',

                                   1,

                                   1) + 1,

                                   INSTR(v_error_backtrace, '.') - INSTR(v_error_backtrace,

                                   '"',

                                   1,

                                   1) - 1),

                            SUBSTR(v_error_backtrace,

                                   INSTR(v_error_backtrace, '.') + 1,

                                   INSTR(v_error_backtrace,

                                   '"',

                                   1,

                                   2) - INSTR(v_error_backtrace, '.') - 1),

                            SUBSTR(v_error_backtrace,

                                   INSTR(v_error_backtrace, 'line') + 5,

                                   INSTR(v_error_backtrace, CHR(10)) - INSTR(v_error_backtrace, 'line') - 5));

             COMMIT;

          END IF;

       END;

       MEMBER PROCEDURE error

       IS

          v_error_backtrace   VARCHAR2(1024);

          PRAGMA AUTONOMOUS_TRANSACTION;

       BEGIN

          IF v_log_level >= 1

          THEN

             --Sample of DBMS_UTILITY.format_error_stack:

             --ORA-06512: at "SPUSEROPAG.OF_REPORTS", line 209

             --ORA-06512: at "SPUSEROPAG.OF_REPORTS", line 3215

             v_error_backtrace   := SUBSTR(DBMS_UTILITY.format_error_backtrace, 1, 1024);

             OWA_UTIL.who_called_me(v_program_owner,

                                    v_program_name,

                                    v_program_lineno,

                                    v_program_type);

             INSERT INTO z_log(log_seq,

                               logger_id,

                               program_owner,

                               program_name,

                               sub_program_name,

                               program_lineno,

                               program_type,

                               program_param,

                               log_level,

                               log_message,

                               err_program_owner,

                               err_program_name,

                               err_program_lineno)

                  VALUES (

                            z_log_seq.NEXTVAL,

                            v_logger_id,

                            v_program_owner,

                            v_program_name,

                            v_sub_program_name,

                            v_program_lineno,

                            v_program_type,

                            v_program_param,

                            'ERROR',

                            SUBSTR(v_error_backtrace || DBMS_UTILITY.format_error_stack, 1, 1024),

                            SUBSTR(v_error_backtrace,

                                   INSTR(v_error_backtrace,

                                   '"',

                                   1,

                                   1) + 1,

                                   INSTR(v_error_backtrace, '.') - INSTR(v_error_backtrace,

                                   '"',

                                   1,

                                   1) - 1),

                            SUBSTR(v_error_backtrace,

                                   INSTR(v_error_backtrace, '.') + 1,

                                   INSTR(v_error_backtrace,

                                   '"',

                                   1,

                                   2) - INSTR(v_error_backtrace, '.') - 1),

                            SUBSTR(v_error_backtrace,

                                   INSTR(v_error_backtrace, 'line') + 5,

                                   INSTR(v_error_backtrace, CHR(10)) - INSTR(v_error_backtrace, 'line') - 5));

             COMMIT;

          END IF;

       END;

    END; 

    引用:logger      logger_factory := logger_factory; 

    调用:logger.info();logger.error();

    创建表:

    1,z_log 

    create table Z_LOG

    (

      log_seq            NUMBER(10),

      log_time           DATE default SYSDATE,

      logger_id          NUMBER(10),

      program_owner      VARCHAR2(100),

      program_name       VARCHAR2(100),

      sub_program_name   VARCHAR2(100),

      program_lineno     VARCHAR2(100),

      program_type       VARCHAR2(100),

      program_param      VARCHAR2(200),

      log_level          VARCHAR2(10),

      log_message        VARCHAR2(1024),

      err_program_owner  VARCHAR2(100),

      err_program_name   VARCHAR2(100),

      err_program_lineno VARCHAR2(100)

    )

    partition by range (LOG_TIME)

    (

      partition P_2015_1H values less than (TO_DATE(' 2015-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2015_2H values less than (TO_DATE(' 2016-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2016_1H values less than (TO_DATE(' 2016-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2016_2H values less than (TO_DATE(' 2017-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2017_1H values less than (TO_DATE(' 2017-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2017_2H values less than (TO_DATE(' 2018-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2018_1H values less than (TO_DATE(' 2018-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2018_2H values less than (TO_DATE(' 2019-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2019_1H values less than (TO_DATE(' 2019-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2019_2H values less than (TO_DATE(' 2020-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2020_1H values less than (TO_DATE(' 2020-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2020_2H values less than (TO_DATE(' 2021-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2021_1H values less than (TO_DATE(' 2021-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2021_2H values less than (TO_DATE(' 2022-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2022_1H values less than (TO_DATE(' 2022-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2022_2H values less than (TO_DATE(' 2023-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2023_1H values less than (TO_DATE(' 2023-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2023_2H values less than (TO_DATE(' 2024-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2024_1H values less than (TO_DATE(' 2024-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2024_2H values less than (TO_DATE(' 2025-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2025_1H values less than (TO_DATE(' 2025-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2025_2H values less than (TO_DATE(' 2026-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2026_1H values less than (TO_DATE(' 2026-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2026_2H values less than (TO_DATE(' 2027-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2027_1H values less than (TO_DATE(' 2027-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2027_2H values less than (TO_DATE(' 2028-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2028_1H values less than (TO_DATE(' 2028-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2028_2H values less than (TO_DATE(' 2029-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2029_1H values less than (TO_DATE(' 2029-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2029_2H values less than (TO_DATE(' 2030-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2030_1H values less than (TO_DATE(' 2030-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2030_2H values less than (TO_DATE(' 2031-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2031_1H values less than (TO_DATE(' 2031-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2031_2H values less than (TO_DATE(' 2032-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2032_1H values less than (TO_DATE(' 2032-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2032_2H values less than (TO_DATE(' 2033-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2033_1H values less than (TO_DATE(' 2033-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2033_2H values less than (TO_DATE(' 2034-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2034_1H values less than (TO_DATE(' 2034-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2034_2H values less than (TO_DATE(' 2035-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2035_1H values less than (TO_DATE(' 2035-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2035_2H values less than (TO_DATE(' 2036-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2036_1H values less than (TO_DATE(' 2036-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2036_2H values less than (TO_DATE(' 2037-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2037_1H values less than (TO_DATE(' 2037-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2037_2H values less than (TO_DATE(' 2038-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2038_1H values less than (TO_DATE(' 2038-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2038_2H values less than (TO_DATE(' 2039-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2039_1H values less than (TO_DATE(' 2039-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_2039_2H values less than (TO_DATE(' 2040-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        ),

      partition P_DEFAULT values less than (MAXVALUE)

        tablespace USERS

        pctfree 10

        initrans 1

        maxtrans 255

        storage

        (

          initial 8M

          next 1M

          minextents 1

          maxextents unlimited

        )

    );

    -- Create/Recreate indexes 

    create index IDX_Z_LOG_001 on Z_LOG (LOG_TIME)

      nologging  local;

    -- Grant/Revoke object privileges 

    grant select, insert, update, delete on Z_LOG to PUBLIC; -- 给公共权限

    2、Z_CONF_LOG_LEVEL

    create table Z_CONF_LOG_LEVEL

    (

      program_owner VARCHAR2(100),

      program_name  VARCHAR2(100),

      log_level     VARCHAR2(10)

    );

    -- Grant/Revoke object privileges 

    grant select, insert, update, delete on Z_CONF_LOG_LEVEL to DML_ROLE;

    grant select, insert, update, delete on Z_CONF_LOG_LEVEL to PUBLIC;

    3、序列 Z_LOG_SEQ

    create sequence Z_LOG_SEQ

    minvalue 1

    maxvalue 9999999999

    start with 1

    increment by 1

    cache 1000

    cycle

    order;

      

  • 相关阅读:
    C语言指针入门
    c的动态内存管理
    汇编入门基础与helloworld
    汇编1
    汇编2——完整的例子集合
    算法与数据结构——选择,插入,希尔排序
    MySQL
    MySQL 笔记
    CSS样式优先级
    GIT使用笔记
  • 原文地址:https://www.cnblogs.com/flyingsanddream/p/10794951.html
Copyright © 2011-2022 走看看