-- Customer specific once-script ARAI.
--
-- (c) 2013 SG|facilitor bv 
-- $Revision$ 
-- $Id$
--
-- Support: +31 53 4800700

SET ECHO ON
SPOOL arai16.lst
SET DEFINE OFF
------------------------------------------------------------------------------------------------------------------------------------------

-- Nieuwe discipline voor gebouwinspecties: gebouwobjecten
INSERT INTO ins_tab_discipline (ins_discipline_module, ins_discipline_omschrijving)
SELECT 'INS','Gebouwobjecten' FROM DUAL;
INSERT INTO ins_disc_params (ins_discipline_key, ins_disc_params_type)
SELECT MAX(ins_discipline_key),0 FROM ins_tab_discipline;


-- Dummy view om domein alvast te kunnen inserten...
CREATE OR REPLACE FORCE VIEW arai_v_bedrijveninfo
(
   prs_bedrijf_key,
   prs_bedrijf_naam,
   prs_bedrijf_telefoon,
   prs_bedrijf_info,
   prs_bedrijf_verwijder
)
AS SELECT 1,'X','0','INFO', NULL FROM DUAL;

-- Kenmerk Leverancier (via domein)
INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_kenmerkdomein_xmlnode, fac_kenmerkdomein_verval)
SELECT 'INS', 'Leverancier', 'ARAI_V_BEDRIJVENINFO', 'PRS_BEDRIJF_KEY', 'PRS_BEDRIJF_INFO', 'bedrijf', 'PRS_BEDRIJF_VERWIJDER' FROM DUAL;
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_omschrijving, ins_srtkenmerk_kenmerktype, fac_kenmerkdomein_key)
SELECT 'Leverancier', 'S', MAX(fac_kenmerkdomein_key) from fac_kenmerkdomein;
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer, ins_kenmerk_bewerkniveau, ins_kenmerk_groep)
SELECT MAX(sk.ins_srtkenmerk_key), MAX(d.ins_discipline_key), 'D', 100, 'D', 0 FROM ins_srtkenmerk sk, ins_tab_discipline d;


-- Kenmerk Onderhoudspartij (via domein)
--INSERT INTO fac_kenmerkdomein (fac_kenmerkdomein_module, fac_kenmerkdomein_omschrijving, fac_kenmerkdomein_objectnaam, fac_kenmerkdomein_kolomnaam, fac_kenmerkdomein_kolomtxt, fac_kenmerkdomein_xmlnode, fac_kenmerkdomein_verval)
--SELECT 'INS', 'Onderhoudspartij', 'ARAI_V_BEDRIJVENINFO', 'PRS_BEDRIJF_KEY', 'PRS_BEDRIJF_INFO', 'bedrijf', 'PRS_BEDRIJF_VERWIJDER' FROM DUAL;
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_omschrijving, ins_srtkenmerk_kenmerktype, fac_kenmerkdomein_key)
SELECT 'Onderhoudspartij', 'S', MAX(fac_kenmerkdomein_key) from fac_kenmerkdomein;
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer, ins_kenmerk_bewerkniveau, ins_kenmerk_groep)
SELECT MAX(sk.ins_srtkenmerk_key), MAX(d.ins_discipline_key), 'D', 100, 'D', 0 FROM ins_srtkenmerk sk, ins_tab_discipline d;




-- Kenmerk Merk
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_omschrijving, ins_srtkenmerk_kenmerktype, ins_srtkenmerk_lengte)
SELECT 'Merk', 'C', 40 from dual;
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer, ins_kenmerk_bewerkniveau, ins_kenmerk_groep)
SELECT MAX(sk.ins_srtkenmerk_key), MAX(d.ins_discipline_key), 'D', 120, 'D', 0 FROM ins_srtkenmerk sk, ins_tab_discipline d;

-- Kenmerk Bouwjaar
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_omschrijving, ins_srtkenmerk_kenmerktype, ins_srtkenmerk_lengte)
SELECT 'Bouwjaar', 'C', 10 from dual;
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer, ins_kenmerk_bewerkniveau, ins_kenmerk_groep)
SELECT MAX(sk.ins_srtkenmerk_key), MAX(d.ins_discipline_key), 'D', 125, 'D', 0 FROM ins_srtkenmerk sk, ins_tab_discipline d;

-- Kenmerk Serienummer
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_omschrijving, ins_srtkenmerk_kenmerktype, ins_srtkenmerk_lengte)
SELECT 'Serienummer', 'C', 25 from dual;
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer, ins_kenmerk_bewerkniveau, ins_kenmerk_groep)
SELECT MAX(sk.ins_srtkenmerk_key), MAX(d.ins_discipline_key), 'D', 130, 'D', 0 FROM ins_srtkenmerk sk, ins_tab_discipline d;

-- Kenmerk Unit
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_omschrijving, ins_srtkenmerk_kenmerktype, ins_srtkenmerk_lengte)
SELECT 'Unit', 'C', 25 from dual;
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer, ins_kenmerk_bewerkniveau, ins_kenmerk_groep)
SELECT MAX(sk.ins_srtkenmerk_key), MAX(d.ins_discipline_key), 'D', 135, 'D', 0 FROM ins_srtkenmerk sk, ins_tab_discipline d;

-- Kenmerk Type
INSERT INTO ins_srtkenmerk (ins_srtkenmerk_omschrijving, ins_srtkenmerk_kenmerktype, ins_srtkenmerk_lengte)
SELECT 'Type', 'C', 40 from dual;
INSERT INTO ins_kenmerk (ins_srtkenmerk_key, ins_srtinstallatie_key, ins_kenmerk_niveau, ins_kenmerk_volgnummer, ins_kenmerk_bewerkniveau, ins_kenmerk_groep)
SELECT MAX(sk.ins_srtkenmerk_key), MAX(d.ins_discipline_key), 'D', 140, 'D', 0 FROM ins_srtkenmerk sk, ins_tab_discipline d;



----
-- Als Facilitor 2015.1 nog niet is ge-released, dan onderstaande UPGRADE alvast doen, zodat de import FIP inspectie werkt...

ALTER TABLE fac_imp_inspectie MODIFY ins_srtcontrole_periode VARCHAR2(7);
ALTER TABLE fac_imp_inspectie ADD ins_srtcontrole_mode VARCHAR2(1);
ALTER TABLE fac_imp_inspectie ADD ins_srtcontrole_eenheid VARCHAR2(1);
ALTER TABLE fac_imp_inspectie ADD ins_srtcontrole_bits VARCHAR2(4);


------------- INSPECTIEDEFINITIES -------------------
CREATE OR REPLACE PROCEDURE fac_import_inspectie (p_import_key IN NUMBER)
IS
    c_delim                          VARCHAR2 (1) := ';';
    v_newline                        VARCHAR2 (1000);                                  -- Input line
    v_errormsg                       VARCHAR2 (1000);
    v_errorhint                      VARCHAR2 (1000);
    oracle_err_num                   NUMBER;
    oracle_err_mes                   VARCHAR2 (200);
    header_is_valid                  NUMBER;
    v_count_tot                      NUMBER (10);
    v_count_import                   NUMBER (10);
    v_ongeldig                       NUMBER (1);
    v_aanduiding                     VARCHAR2 (200);
    -- De importvelden
    v_ins_discipline_omschrijving    VARCHAR2 (255);                                          -- C30
    v_ins_srtgroep_omschrijving      VARCHAR2 (255);                                          -- C60
    v_ins_srtdeel_code               VARCHAR2 (255);                                          -- C10
    v_ins_srtcontrole_omschrijving   VARCHAR2 (255);                                          -- C60
    v_ins_srtcontrole_info           VARCHAR2 (1000);                                        	-- C320
    v_ins_srtcontrole_periode        VARCHAR2 (255);                                          -- N6,2
    v_ins_srtcontrole_mode					 VARCHAR2 (255);																					-- N1: 0=moment-modus of 1=interval-modus
    v_ins_srtcontrole_eenheid				 VARCHAR2 (255);																					-- N1: 0=uurlijks, 1=dagelijks, 2=wekelijk, 3=maandelijk, 4=jaarlijks, null=niet
    v_ins_srtcontrole_bits					 VARCHAR2 (255);																					-- N4: details, afhankelijk van de mode (mag best null zijn)

    -- Overige velden:
    CURSOR c1
    IS
          SELECT *
            FROM fac_imp_file
           WHERE fac_import_key = p_import_key
        ORDER BY fac_imp_file_index;
BEGIN
    -- Eerst opruiming
    DELETE FROM fac_imp_inspectie;

    v_count_tot := 0;
    v_count_import := 0;
    header_is_valid := 0;
    COMMIT;

    FOR rec1 IN c1
    LOOP
        BEGIN
            v_newline := rec1.fac_imp_file_line;
            v_errormsg := 'Fout opvragen te importeren rij';
            v_aanduiding := '';
            v_ongeldig := 0;
            -- Lees alle veldwaarden
            fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving);
            fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving);
            fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code);
            fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_omschrijving);
            fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_info);
            fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_periode);
            fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_eenheid);
            fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_mode);
            fac.imp_getfield (v_newline, c_delim, v_ins_srtcontrole_bits);

            v_aanduiding :=
                   '|'
                || v_ins_discipline_omschrijving
                || '|'
                || v_ins_srtgroep_omschrijving
                || '|'
                || v_ins_srtdeel_code
                || '|'
                || v_ins_srtcontrole_omschrijving
                || '| ';

            -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
            -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
            -- Ik negeer alles totdat ik een geldige header ben gepasseerd.
            IF (header_is_valid = 0)
            THEN
                IF     UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINEOMSCHRIJVING'
                   AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEPSOORTOMSCHRIJVING'
                   AND UPPER (v_ins_srtdeel_code) = 'OBJECTSOORTCODE'
                   AND UPPER (v_ins_srtcontrole_omschrijving) = 'CONTROLE OMSCHRIJVING'
                   AND UPPER (v_ins_srtcontrole_info) = 'CONTROLE INFORMATIE'
                   AND UPPER (v_ins_srtcontrole_periode) = 'CONTROLE PERIODE'
                   AND UPPER (v_ins_srtcontrole_eenheid) = 'EENHEID'
                   AND UPPER (v_ins_srtcontrole_mode) = 'MODE'
                THEN
                    header_is_valid := 1;
                END IF;
            ELSE
                v_count_tot := v_count_tot + 1;
                -- Controleer alle veldwaarden
                v_ins_discipline_omschrijving := TRIM (v_ins_discipline_omschrijving);

                IF LENGTH (v_ins_discipline_omschrijving) > 30
                THEN
                    v_ins_discipline_omschrijving :=
                        SUBSTR (TRIM (v_ins_discipline_omschrijving), 1, 30);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                           'Disciplineomschrijving wordt afgebroken tot ['
                        || v_ins_discipline_omschrijving
                        || ']');
                END IF;

                --
                v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving);

                IF LENGTH (v_ins_srtgroep_omschrijving) > 60
                THEN
                    v_ins_srtgroep_omschrijving :=
                        SUBSTR (TRIM (v_ins_srtgroep_omschrijving), 1, 60);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                           'Groepsoortomschrijving wordt afgebroken tot ['
                        || v_ins_srtgroep_omschrijving
                        || ']');
                END IF;

                --
                v_ins_srtdeel_code := TRIM (v_ins_srtdeel_code);

                IF LENGTH (v_ins_srtdeel_code) > 10
                THEN
                    v_ins_srtdeel_code := SUBSTR (TRIM (v_ins_srtdeel_code), 1, 10);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                        'Objectsoortcode wordt afgebroken tot [' || v_ins_srtdeel_code || ']');
                END IF;

                --
                v_ins_srtcontrole_omschrijving := TRIM (v_ins_srtcontrole_omschrijving);

                IF LENGTH (v_ins_srtcontrole_omschrijving) > 60
                THEN
                    v_ins_srtcontrole_omschrijving :=
                        SUBSTR (TRIM (v_ins_srtcontrole_omschrijving), 1, 60);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                           'Controle omschrijving wordt afgebroken tot ['
                        || v_ins_srtcontrole_omschrijving
                        || ']');
                END IF;

                --
                v_ins_srtcontrole_info := TRIM (v_ins_srtcontrole_info);

                IF LENGTH (v_ins_srtcontrole_info) > 320
                THEN
                    v_ins_srtcontrole_info := SUBSTR (TRIM (v_ins_srtcontrole_info), 1, 320);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                           'Controle informatie wordt afgebroken tot ['
                        || v_ins_srtcontrole_info
                        || ']');
                END IF;

                --
                v_ins_srtcontrole_periode := TRIM (v_ins_srtcontrole_periode);

                IF LENGTH (v_ins_srtcontrole_periode) > 7
                THEN
                    v_ins_srtcontrole_periode := SUBSTR (TRIM (v_ins_srtcontrole_periode), 1, 7);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                           'Controle periode wordt afgebroken tot ['
                        || v_ins_srtcontrole_periode
                        || ']');
                END IF;
                
                
                --
                v_ins_srtcontrole_eenheid := TRIM (v_ins_srtcontrole_eenheid);

                IF LENGTH (v_ins_srtcontrole_eenheid) > 1
                THEN
                    v_ins_srtcontrole_eenheid := SUBSTR (TRIM (v_ins_srtcontrole_eenheid), 1, 1);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                           'Controle eenheid wordt afgebroken tot ['
                        || v_ins_srtcontrole_eenheid
                        || ']');
                END IF;
                
                
                --
                v_ins_srtcontrole_mode := TRIM (v_ins_srtcontrole_mode);

                IF LENGTH (v_ins_srtcontrole_mode) > 1
                THEN
                    v_ins_srtcontrole_mode := SUBSTR (TRIM (v_ins_srtcontrole_mode), 1, 1);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                           'Controle Mode wordt afgebroken tot ['
                        || v_ins_srtcontrole_mode
                        || ']');
                END IF;
                
                --
                v_ins_srtcontrole_bits := TRIM (v_ins_srtcontrole_bits);

                IF LENGTH (v_ins_srtcontrole_bits) > 4
                THEN
                    v_ins_srtcontrole_bits := SUBSTR (TRIM (v_ins_srtcontrole_bits), 1, 4);
                    fac.imp_writelog (
                        p_import_key,
                        'W',
                        v_aanduiding,
                           'Controle Bits wordt afgebroken tot ['
                        || v_ins_srtcontrole_bits
                        || ']');
                END IF;


                -- Insert geformatteerde import record
                IF v_ongeldig = 0
                THEN
                    BEGIN
                        INSERT INTO fac_imp_inspectie (ins_discipline_omschrijving,
                                                       ins_srtgroep_omschrijving,
                                                       ins_srtdeel_code,
                                                       ins_srtcontrole_omschrijving,
                                                       ins_srtcontrole_info,
                                                       ins_srtcontrole_periode,
                                                       ins_srtcontrole_eenheid,
									                                     ins_srtcontrole_mode,
									                                     ins_srtcontrole_bits)
                            VALUES (v_ins_discipline_omschrijving,
                                    v_ins_srtgroep_omschrijving,
                                    v_ins_srtdeel_code,
                                    v_ins_srtcontrole_omschrijving,
                                    v_ins_srtcontrole_info,
                                    v_ins_srtcontrole_periode,
                                    v_ins_srtcontrole_eenheid,
                                    v_ins_srtcontrole_mode,
                                    v_ins_srtcontrole_bits
                                    );

                        v_count_import := v_count_import + 1;
                    EXCEPTION
                        WHEN OTHERS
                        THEN
                            oracle_err_num := SQLCODE;
                            oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
                            v_errormsg :=
                                'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
                            fac.imp_writelog (
                                p_import_key,
                                'E',
                                v_aanduiding || v_errormsg,
                                'Fout bij toevoegen regel aan importtabel FAC_IMP_INSPECTIE.');
                    END;
                END IF;
            END IF;
        END;
    END LOOP;

    IF (header_is_valid = 0)
    THEN
        fac.imp_writelog (p_import_key,
                          'E',
                          'Ongeldig importbestand',
                          'Geen header of header niet volgens specificatie!');
    ELSE
        fac.imp_writelog (
            p_import_key,
            'S',
            'Inspectie controles: aantal ingelezen importregels: ' || TO_CHAR (v_count_tot),
            '');
        fac.imp_writelog (
            p_import_key,
            'S',
            'Inspectie controles: aantal ongeldige niet ingelezen importregels: '
            || TO_CHAR (v_count_tot - v_count_import),
            '');
    END IF;

    COMMIT;
EXCEPTION
    WHEN OTHERS
    THEN
        oracle_err_num := SQLCODE;
        oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
        v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
        fac.imp_writelog (p_import_key,
                          'E',
                          v_errormsg,
                          'Inleesproces inspecties afgebroken!');
END fac_import_inspectie;
/

CREATE OR REPLACE PROCEDURE fac_update_inspectie (p_import_key IN NUMBER)
AS
    v_errormsg                 VARCHAR2 (1000);
    oracle_err_num             NUMBER;
    oracle_err_mes             VARCHAR2 (200);
    header_is_valid            NUMBER;
    v_count_error              NUMBER (10);
    v_count                    NUMBER (10);
    v_count_tot                NUMBER (10);
    v_count_import             NUMBER (10);
    v_ongeldig                 NUMBER (1);
    v_aanduiding               VARCHAR2 (200);
    v_errorhint                VARCHAR2 (1000);


    v_ins_srtinstallatie_key   NUMBER (10);
    v_ins_srtcontrole_niveau   VARCHAR (1);


    CURSOR c_inspecties
    IS
        SELECT * FROM fac_imp_inspectie;
-- MAIN
BEGIN
    FOR rec_ins IN c_inspecties
    LOOP
        BEGIN
            v_count_tot := v_count_tot + 1;
            v_aanduiding :=
                   rec_ins.ins_discipline_omschrijving
                || ' - '
                || rec_ins.ins_srtgroep_omschrijving
                || '-'
                || rec_ins.ins_srtdeel_code;
            v_errorhint := 'Fout bij bepalen discipline';

            IF rec_ins.ins_discipline_omschrijving IS NULL
            THEN
                fac.imp_writelog (
                    p_import_key,
                    'E',
                    v_aanduiding,
                    'Discipline mag niet leeg zijn: inspectie wordt niet toegevoegd.');
            ELSE
                SELECT ins_discipline_key, 'D'
                  INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
                  FROM ins_tab_discipline
                 WHERE UPPER (ins_discipline_omschrijving) =
                           UPPER (rec_ins.ins_discipline_omschrijving)
                       AND ins_discipline_module = 'INS'
                       AND ins_discipline_verwijder IS NULL;

                IF rec_ins.ins_srtgroep_omschrijving IS NOT NULL
                THEN
                    SELECT ins_srtgroep_key, 'G'
                      INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
                      FROM ins_srtgroep
                     WHERE UPPER (ins_srtgroep_omschrijving) =
                               UPPER (rec_ins.ins_srtgroep_omschrijving)
                           AND ins_srtgroep_module = 'INS'
                           AND ins_srtgroep_verwijder IS NULL
                           AND ins_discipline_key = v_ins_srtinstallatie_key;

                    IF rec_ins.ins_srtdeel_code IS NOT NULL
                    THEN
                        SELECT ins_srtdeel_key, 'S'
                          INTO v_ins_srtinstallatie_key, v_ins_srtcontrole_niveau
                          FROM ins_srtdeel
                         WHERE     UPPER (ins_srtdeel_code) = UPPER (rec_ins.ins_srtdeel_code)
                               AND ins_srtdeel_module = 'INS'
                               AND ins_srtdeel_verwijder IS NULL
                               AND ins_srtgroep_key = v_ins_srtinstallatie_key;
                    END IF;
                END IF;

                IF rec_ins.ins_srtcontrole_omschrijving IS NOT NULL
                   AND rec_ins.ins_srtcontrole_periode IS NOT NULL
                   AND rec_ins.ins_srtcontrole_eenheid IS NOT NULL
                   AND rec_ins.ins_srtcontrole_mode IS NOT NULL
                THEN
                    INSERT INTO ins_srtcontrole (ins_srtinstallatie_key,
                                                 ins_srtcontrole_niveau,
                                                 ins_srtcontrole_omschrijving,
                                                 ins_srtcontrole_info,
                                                 ins_srtcontrole_periode,
                                                 ins_srtcontrole_eenheid,
                                                 ins_srtcontrole_mode
                                                 )
                        VALUES (v_ins_srtinstallatie_key,
                                v_ins_srtcontrole_niveau,
                                rec_ins.ins_srtcontrole_omschrijving,
                                rec_ins.ins_srtcontrole_info,
                                rec_ins.ins_srtcontrole_periode,
                                rec_ins.ins_srtcontrole_eenheid,
                                rec_ins.ins_srtcontrole_mode
                                );
                ELSE
                    fac.imp_writelog (
                        p_import_key,
                        'E',
                        v_aanduiding,
                        'Controle omschrijving en/of Controle Periode mag niet leeg zijn: inspectie wordt niet toegevoegd.');
                END IF;
            END IF;
        EXCEPTION
            WHEN OTHERS
            THEN
                v_count_error := v_count_error + 1;
                oracle_err_num := SQLCODE;
                oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
                v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
                fac.imp_writelog (p_import_key,
                                  'E',
                                  v_aanduiding || v_errormsg,
                                  v_errorhint);
                COMMIT;
        END;
    END LOOP;
EXCEPTION
    WHEN OTHERS
    THEN
        oracle_err_num := SQLCODE;
        oracle_err_mes := SUBSTR (SQLERRM, 1, 150);
        v_errormsg :=
            v_errormsg || 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
        fac.imp_writelog (p_import_key,
                          'E',
                          'Importproces inspecties afgebroken!',
                          v_errormsg);
END fac_update_inspectie;
/






------------------------------------------------------------------------------------------------------------------------------------------
BEGIN adm.systrackscriptId('$Id$'); END;
/

commit;

SPOOL OFF

@arai.sql
