svn path=/Customer/trunk/; revision=15272
This commit is contained in:
35
PRIS/Once/pris2.sql
Normal file
35
PRIS/Once/pris2.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
-- Customer specific once-script PRIS2.
|
||||
--
|
||||
-- (c) 2012 SG|facilitor bv
|
||||
-- $Revision: 1 $
|
||||
-- $Modtime: 8-05-12 13:34 $
|
||||
--
|
||||
-- Support: +31 53 4800700
|
||||
SET ECHO ON
|
||||
SPOOL xpris2.lst
|
||||
SET DEFINE OFF
|
||||
|
||||
-- Voor importeren eigen tabellen (specifiek: voor hash table pandcode-->vinder-regio)
|
||||
CREATE TABLE pris_imp_usrdata (
|
||||
fac_usrtab_naam VARCHAR2 (16),
|
||||
fac_usrdata_code VARCHAR2 (40),
|
||||
fac_usrdata_omschr VARCHAR2 (60),
|
||||
fac_usrdata_volgnr NUMBER (3),
|
||||
fac_usrdata_prijs NUMBER (8,2),
|
||||
fac_usrdata_vervaldatum DATE
|
||||
);
|
||||
|
||||
INSERT INTO fac_import_app
|
||||
(fac_import_app_code, fac_import_app_oms,
|
||||
fac_functie_key)
|
||||
SELECT 'USRDATA', 'FIP: Aanmaken/bijwerken eigen tabel',
|
||||
fac_functie_key
|
||||
FROM fac_functie
|
||||
WHERE fac_functie_code = 'WEB_IMPORT';
|
||||
|
||||
BEGIN adm.systrackscript('$Workfile: pris2.sql $', '$Revision: 1 $', 1); END;
|
||||
/
|
||||
|
||||
@pris.sql
|
||||
|
||||
SPOOL OFF
|
||||
443
PRIS/pris.sql
443
PRIS/pris.sql
@@ -1,7 +1,7 @@
|
||||
-- Script containing customer specific configuration sql statements for PRIS
|
||||
-- (c) 2010 SG|facilitor bv
|
||||
-- $Revision: 2 $
|
||||
-- $Modtime: 23-09-10 13:10 $
|
||||
-- $Revision: 3 $
|
||||
-- $Modtime: 8-05-12 13:38 $
|
||||
--
|
||||
-- Support: +31 53 4800700
|
||||
|
||||
@@ -246,6 +246,445 @@ AS
|
||||
AND og.alg_locatie_key = l.alg_locatie_key
|
||||
AND m.mld_melding_status = s.mld_statuses_key;
|
||||
|
||||
CREATE OR REPLACE PROCEDURE pris_import_usrdata (p_import_key IN NUMBER)
|
||||
IS
|
||||
c_delim VARCHAR2 (1) := ';';
|
||||
v_newline VARCHAR2 (1000); -- Input line
|
||||
v_errormsg 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 VARCHAR (200);
|
||||
-- De importvelden:
|
||||
v_fac_usrtab_naam VARCHAR2 (256); -- C16
|
||||
v_fac_usrdata_code VARCHAR2 (256); -- C40
|
||||
v_fac_usrdata_omschr VARCHAR2 (256); -- C60
|
||||
v_fac_usrdata_volgnr VARCHAR2 (256); -- N3
|
||||
v_fac_usrdata_prijs VARCHAR2 (256); -- N8,2
|
||||
v_fac_usrdata_vervaldatum VARCHAR2 (256); -- DATE
|
||||
-- Overig:
|
||||
v_fac_usrdata_volgnr_n NUMBER (3); -- N3
|
||||
v_fac_usrdata_prijs_n NUMBER (8, 2); -- N8,2
|
||||
v_fac_usrdata_vervaldatum_d DATE; -- DATE
|
||||
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT *
|
||||
FROM fac_imp_file
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY fac_imp_file_index;
|
||||
BEGIN
|
||||
DELETE FROM pris_imp_usrdata;
|
||||
|
||||
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 bij opvragen importregel';
|
||||
v_aanduiding := '';
|
||||
v_ongeldig := 0;
|
||||
-- Lees alle veldwaarden
|
||||
fac.imp_getfield (v_newline, c_delim, v_fac_usrtab_naam);
|
||||
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_code);
|
||||
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_omschr);
|
||||
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_volgnr);
|
||||
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_prijs);
|
||||
fac.imp_getfield (v_newline, c_delim, v_fac_usrdata_vervaldatum);
|
||||
v_aanduiding :=
|
||||
'[' || v_fac_usrtab_naam || '|' || v_fac_usrdata_code || '] ';
|
||||
|
||||
-- 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_fac_usrtab_naam) = 'TABELNAAM'
|
||||
AND UPPER (v_fac_usrdata_code) = 'WAARDE_CODE'
|
||||
AND UPPER (v_fac_usrdata_omschr) = 'WAARDE_OMS'
|
||||
AND UPPER (v_fac_usrdata_volgnr) = 'VOLGNR'
|
||||
AND UPPER (v_fac_usrdata_prijs) = 'PRIJS'
|
||||
AND UPPER (v_fac_usrdata_vervaldatum) = 'VERVALDATUM'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
ELSE
|
||||
v_count_tot := v_count_tot + 1;
|
||||
-- Controleer alle veldwaarden
|
||||
v_errormsg := 'Tabelnaam ongeldig; ongedefinieerd of te lang';
|
||||
v_fac_usrtab_naam := TRIM (v_fac_usrtab_naam);
|
||||
|
||||
IF v_fac_usrtab_naam IS NULL OR LENGTH (v_fac_usrtab_naam) > 16
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Regel wordt overgeslagen!');
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errormsg := 'Waarde-code ongeldig; ongedefinieerd of te lang';
|
||||
v_fac_usrdata_code := TRIM (v_fac_usrdata_code);
|
||||
|
||||
IF v_fac_usrdata_code IS NULL OR LENGTH (v_fac_usrdata_code) > 40
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Regel wordt overgeslagen!');
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errormsg := 'Waarde-omschrijving te lang';
|
||||
v_fac_usrdata_omschr := TRIM (v_fac_usrdata_omschr);
|
||||
|
||||
IF LENGTH (v_fac_usrdata_omschr) > 60
|
||||
THEN
|
||||
v_fac_usrdata_omschr :=
|
||||
SUBSTR (TRIM (v_fac_usrdata_omschr), 1, 60);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'W',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Waarde-omschrijving wordt afgebroken tot ['
|
||||
|| v_fac_usrdata_omschr
|
||||
|| ']'
|
||||
);
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errormsg := 'Volgnummer ongeldig; maximale grootte 999';
|
||||
v_fac_usrdata_volgnr := TRIM (v_fac_usrdata_volgnr);
|
||||
v_fac_usrdata_volgnr_n := NULL;
|
||||
|
||||
IF (v_fac_usrdata_volgnr IS NOT NULL)
|
||||
THEN
|
||||
IF (fac.safe_to_number (v_fac_usrdata_volgnr) IS NULL)
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Regel wordt overgeslagen!');
|
||||
ELSE
|
||||
v_fac_usrdata_volgnr_n :=
|
||||
fac.safe_to_number (v_fac_usrdata_volgnr);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errormsg := 'Prijs ongeldig; maximale grootte 999999.99';
|
||||
v_fac_usrdata_prijs := TRIM (v_fac_usrdata_prijs);
|
||||
v_fac_usrdata_prijs_n := NULL;
|
||||
|
||||
IF (v_fac_usrdata_prijs IS NOT NULL)
|
||||
THEN
|
||||
IF (fac.safe_to_number (v_fac_usrdata_prijs) IS NULL)
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Regel wordt overgeslagen!');
|
||||
ELSE
|
||||
v_fac_usrdata_prijs_n :=
|
||||
fac.safe_to_number (v_fac_usrdata_prijs);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
--
|
||||
v_errormsg := 'Vervaldatum ongeldig';
|
||||
v_fac_usrdata_vervaldatum := TRIM (v_fac_usrdata_vervaldatum);
|
||||
v_fac_usrdata_vervaldatum_d := NULL;
|
||||
|
||||
IF (v_fac_usrdata_vervaldatum IS NOT NULL)
|
||||
THEN
|
||||
IF (fac.safe_to_date (v_fac_usrdata_vervaldatum, 'dd-mm-yyyy') IS NULL)
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Regel wordt overgeslagen!');
|
||||
ELSE
|
||||
v_fac_usrdata_vervaldatum_d :=
|
||||
fac.safe_to_date (v_fac_usrdata_vervaldatum,
|
||||
'dd-mm-yyyy');
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Insert geformatteerde import record
|
||||
IF v_ongeldig = 0
|
||||
THEN
|
||||
BEGIN
|
||||
v_errormsg := 'Fout bij wegschrijven importregel';
|
||||
|
||||
INSERT INTO pris_imp_usrdata (fac_usrtab_naam,
|
||||
fac_usrdata_code,
|
||||
fac_usrdata_omschr,
|
||||
fac_usrdata_volgnr,
|
||||
fac_usrdata_prijs,
|
||||
fac_usrdata_vervaldatum)
|
||||
VALUES (v_fac_usrtab_naam,
|
||||
v_fac_usrdata_code,
|
||||
v_fac_usrdata_omschr,
|
||||
v_fac_usrdata_volgnr_n,
|
||||
v_fac_usrdata_prijs_n,
|
||||
v_fac_usrdata_vervaldatum_d);
|
||||
|
||||
v_count_import := v_count_import + 1;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'');
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
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',
|
||||
'Eigen tabellen/aantal ingelezen importregels: '
|
||||
|| TO_CHAR (v_count_tot),
|
||||
''
|
||||
);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'S',
|
||||
'Eigen tabellen/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, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| ' ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
'Inleesproces eigen tabellen afgebroken!');
|
||||
END pris_import_usrdata;
|
||||
/
|
||||
|
||||
/* Formatted on 7-3-2011 11:52:52 (QP5 v5.115.810.9015) */
|
||||
CREATE OR REPLACE PROCEDURE pris_update_usrdata (p_import_key IN NUMBER)
|
||||
AS
|
||||
-- Cursor loopt over de voorkomende (unieke) tabelnamen.
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT DISTINCT fac_usrtab_naam FROM pris_imp_usrdata;
|
||||
|
||||
v_errormsg VARCHAR2 (1000) := '';
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
|
||||
-- SUBPROC
|
||||
PROCEDURE add_tabel (p_import_key IN NUMBER,
|
||||
p_tabname IN VARCHAR2)
|
||||
AS
|
||||
CURSOR c1
|
||||
IS
|
||||
SELECT fac_usrtab_naam,
|
||||
fac_usrdata_code,
|
||||
fac_usrdata_omschr,
|
||||
fac_usrdata_volgnr,
|
||||
fac_usrdata_prijs,
|
||||
fac_usrdata_vervaldatum
|
||||
FROM pris_imp_usrdata
|
||||
WHERE fac_usrtab_naam = p_tabname;
|
||||
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_count NUMBER (10);
|
||||
v_count_tot NUMBER (10);
|
||||
v_count_upd NUMBER (10);
|
||||
v_tab_key NUMBER;
|
||||
BEGIN
|
||||
v_count_tot := 0;
|
||||
v_count_upd := 0;
|
||||
|
||||
v_errormsg := 'Fout bij bepalen eigen tabel [' || p_tabname || '] ';
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM fac_usrtab
|
||||
WHERE fac_usrtab_naam = p_tabname;
|
||||
|
||||
IF (v_count = 0)
|
||||
THEN
|
||||
v_errormsg := 'Fout bij toevoegen eigen tabel [' || p_tabname || '] ';
|
||||
|
||||
INSERT INTO fac_usrtab (fac_usrtab_naam, fac_usrtab_omschrijving)
|
||||
VALUES (p_tabname, p_tabname)
|
||||
RETURNING fac_usrtab_key INTO v_tab_key;
|
||||
|
||||
COMMIT;
|
||||
ELSE
|
||||
SELECT fac_usrtab_key
|
||||
INTO v_tab_key
|
||||
FROM fac_usrtab
|
||||
WHERE fac_usrtab_naam = p_tabname;
|
||||
END IF;
|
||||
|
||||
FOR rec IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
v_count_tot := v_count_tot + 1;
|
||||
v_errormsg :=
|
||||
'Fout bij bepalen bestaan waarde-code ['
|
||||
|| rec.fac_usrdata_code
|
||||
|| '] ';
|
||||
|
||||
SELECT COUNT ( * )
|
||||
INTO v_count
|
||||
FROM fac_usrdata
|
||||
WHERE fac_usrtab_key = v_tab_key
|
||||
AND fac_usrdata_code = rec.fac_usrdata_code;
|
||||
|
||||
IF (v_count = 0)
|
||||
THEN
|
||||
v_errormsg :=
|
||||
'Fout bij toevoegen waarde-code ['
|
||||
|| rec.fac_usrdata_code
|
||||
|| '] ';
|
||||
|
||||
INSERT INTO fac_usrdata (fac_usrtab_key,
|
||||
fac_usrdata_code,
|
||||
fac_usrdata_omschr,
|
||||
fac_usrdata_volgnr,
|
||||
fac_usrdata_vervaldatum,
|
||||
fac_usrdata_prijs)
|
||||
VALUES (v_tab_key,
|
||||
rec.fac_usrdata_code,
|
||||
rec.fac_usrdata_omschr,
|
||||
rec.fac_usrdata_volgnr,
|
||||
rec.fac_usrdata_vervaldatum,
|
||||
rec.fac_usrdata_prijs);
|
||||
ELSE
|
||||
v_errormsg :=
|
||||
'Fout bij bijwerken waarde-code ['
|
||||
|| rec.fac_usrdata_code
|
||||
|| '] ';
|
||||
|
||||
UPDATE fac_usrdata
|
||||
SET fac_usrdata_omschr = rec.fac_usrdata_omschr,
|
||||
fac_usrdata_volgnr = rec.fac_usrdata_volgnr,
|
||||
fac_usrdata_vervaldatum = rec.fac_usrdata_vervaldatum,
|
||||
fac_usrdata_prijs = rec.fac_usrdata_prijs
|
||||
WHERE fac_usrtab_key = v_tab_key
|
||||
AND fac_usrdata_code = rec.fac_usrdata_code;
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
|
||||
v_count_upd := v_count_upd + 1;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| 'ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
'');
|
||||
COMMIT;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'S',
|
||||
p_tabname || ': #ingelezen = ' || TO_CHAR (v_count_tot),
|
||||
''
|
||||
);
|
||||
fac.imp_writelog (
|
||||
p_import_key,
|
||||
'S',
|
||||
p_tabname || ': #toegevoegd/bijgewerkt = ' || TO_CHAR (v_count_upd),
|
||||
''
|
||||
);
|
||||
COMMIT;
|
||||
END;
|
||||
-- MAIN
|
||||
BEGIN
|
||||
-- Loop door de voorkomende (unieke) tabelnamen en voeg deze toe en/of werk
|
||||
-- deze bij.
|
||||
FOR rec IN c1
|
||||
LOOP
|
||||
BEGIN
|
||||
add_tabel (p_import_key, rec.fac_usrtab_naam);
|
||||
END;
|
||||
END LOOP;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||||
v_errormsg :=
|
||||
v_errormsg
|
||||
|| 'ORACLE (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
'Importproces eigen tabellen afgebroken!');
|
||||
END pris_update_usrdata;
|
||||
/
|
||||
|
||||
BEGIN fac.registercustversion('PRIS', 1); END;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user