Files
Customer/VRTW/vrtw.sql
Robin Stoker 0ba91b849d VRTW#88723 -- Mail2melding naar fictieve locatie
svn path=/Customer/trunk/; revision=68863
2025-04-25 11:32:31 +00:00

688 lines
26 KiB
SQL

--
-- $Id$
--
-- Script containing customer specific sql statements for the VRTW database
DEFINE thisfile = 'VRTW.SQL'
DEFINE dbuser = 'VRTW'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PROCEDURE vrtw_import_prs (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_newline FAC_IMP_FILE.FAC_IMP_FILE_LINE%TYPE;
BEGIN
BEGIN
SELECT fac_imp_file_line
INTO v_newline
FROM fac_imp_file
WHERE fac_import_key = p_import_key
AND fac_imp_file_index = 1;
IF v_newline LIKE
CHR (TO_NUMBER ('EF', 'xx'))
|| CHR (TO_NUMBER ('BB', 'xx'))
|| CHR (TO_NUMBER ('BF', 'xx'))
|| '%'
THEN
-- EF BB BF aangetroffen
fac.imp_writelog (p_import_key,
'W',
'Byte Order Mark aangetroffen',
'Bestand heeft onbehandeld UTF-8 formaat.'
);
v_newline := SUBSTR (v_newline, 4);
END IF;
-- Verwijder de dubbele quotes
v_newline := REPLACE (v_newline, '"');
UPDATE fac_imp_file
SET fac_imp_file_line = v_newline
WHERE fac_import_key = p_import_key
AND fac_imp_file_index = 1;
EXCEPTION WHEN OTHERS
THEN
fac.imp_writelog (p_import_key,
'E',
'Fout bij controle op Byte Order Mark',
''
);
END;
v_errorhint := 'Generieke update';
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
prs.import_perslid (p_import_key,
'9;0;0;0;0;0;8;6;5;4;' ||
'0;0;0;0;0;0;10;2;0;0;' ||
'7;1;0;0;0;0;0;0;0;0;'||
'0;0;0;0;0;0;0;0;0;0;'||
'0;0;0;0;0;0',
'adfs_login;email;initialen;voornaam;tussenvoegsel;achternaam;functie;afdeling;locatie;mobiel%'
);
COMMIT;
-- Tot dummyruimte nog even de import tabel vullen, voor de werkplektoekenning
DECLARE
CURSOR alg
IS
SELECT l.alg_locatie_code,
g.alg_gebouw_code,
v.alg_verdieping_volgnr,
r.alg_ruimte_nr
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE g.alg_locatie_key = l.alg_locatie_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND r.alg_ruimte_nr = '_-'
AND alg_gebouw_verwijder IS NULL;
BEGIN
FOR rec IN alg
LOOP
BEGIN
UPDATE fac_imp_perslid
SET alg_gebouw_code = rec.alg_gebouw_code,
alg_verdieping_volgnr = rec.alg_verdieping_volgnr,
alg_ruimte_nr = rec.alg_ruimte_nr
WHERE UPPER (alg_locatie_code) = UPPER (TRIM (rec.alg_locatie_code));
END;
END LOOP;
END;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
END vrtw_import_prs;
/
CREATE OR REPLACE PROCEDURE vrtw_update_prs (
p_import_key IN NUMBER
) IS
-- Alle personen verwijderen die niet meer in import bestand voorkomen.
CURSOR c_del
IS
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf
WHERE UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin(+))
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_oslogin IS NOT NULL
AND i.prs_perslid_oslogin IS NULL
AND p.prs_perslid_verwijder IS NULL
AND substr(p.prs_perslid_oslogin, 1, 1) != '_'
ORDER BY 2;
v_count NUMBER;
BEGIN
-- generic update
SELECT count(*)
INTO v_count
FROM fac_imp_perslid;
IF v_count < 150
THEN
fac.imp_writelog (p_import_key,
'E',
'Het aantal te importeren personen is te klein ('
|| TO_CHAR (v_count) || ')',
'Zie Specificatie'
);
RETURN;
END IF;
-- 'LOGIN' betekent dat op basis van oslogin wordt gematched.
-- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen
prs.update_perslid (p_import_key, 'LOGIN', 'A');
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
END vrtw_update_prs;
/
-- Vanaf hier volgen rapportages
-- Rapport voor de brandmeester van dienst om zo makkelijk in te zien wat er speelt op een locatie (beperkt tot Almelo, Hengelo, Enschede)
CREATE OR REPLACE VIEW vrtw_v_rap_bmvd
(
melding_datum,
locatie,
type_melding,
vakgroep,
specifieke_melding,
melding_nummer,
onderwerp,
omschrijving,
aangemeld_door,
status
)
AS
SELECT m.mld_melding_datum,
l.alg_locatie_omschrijving,
sd.ins_srtdiscipline_omschrijving,
md.ins_discipline_omschrijving,
std.mld_stdmelding_omschrijving,
m.mld_melding_key,
COALESCE (m.mld_melding_onderwerp, 'leeg'),
COALESCE (TO_CHAR(SUBSTR(m.mld_melding_omschrijving,1,4000)), 'leeg'),
pf.prs_perslid_naam_friendly,
mld_statuses_omschrijving
FROM mld_melding m,
mld_stdmelding std,
mld_discipline md,
ins_srtdiscipline sd,
prs_v_perslid_fullnames pf,
mld_statuses ms,
alg_locatie l
WHERE m.mld_alg_locatie_key = l.alg_locatie_key
AND m.mld_melding_status = ms.mld_statuses_key
AND m.mld_alg_locatie_key IN (55, 52, 65, 57, 64) -- Enschede Centrum en Noord, Almelo Centrum, Hengelo Centrum, Almelo tijdelijk
AND m.mld_stdmelding_key = std.mld_stdmelding_key
AND std.mld_ins_discipline_key IN (52, 70, 60) -- Gebouwgerelateerd, Voertuigen, Operationeel
AND std.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.prs_perslid_key = pf.prs_perslid_key
AND NOT EXISTS
(SELECT 'X'
FROM fac_tracking f
WHERE fac_srtnotificatie_key = 47 -- MLDAFM
AND fac_tracking_refkey = m.mld_melding_key
AND f.fac_tracking_datum < SYSDATE - 10);
-- Rapport tbv QR codes
CREATE OR REPLACE VIEW vrtw_v_ins_qrc_mld
AS
SELECT i.ins_deel_omschrijving hide_f_sort,
l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving
fclt_f_locatie,
o.alg_gebouw_omschrijving fclt_f_gebouw,
o.alg_plaatsaanduiding fclt_f_plaats,
d.ins_discipline_omschrijving fclt_f_discipline,
g.ins_srtgroep_omschrijving fclt_f_objectgroep,
s.ins_srtdeel_omschrijving fclt_f_objectsoort,
i.ins_deel_omschrijving fclt_f_identificatie,
i.ins_deel_key,
s.ins_srtdeel_key,
o.alg_gebouw_code,
o.alg_verdieping_code,
i.ins_discipline_key fclt_3d_discipline_key,
l.alg_locatie_key fclt_3d_locatie_key,
i.ins_alg_ruimte_type,
i.ins_alg_ruimte_key,
CASE
WHEN d.ins_discipline_key = 81 -- ICT
THEN
(SELECT k.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel k
WHERE k.ins_deel_key = i.ins_deel_key
AND k.ins_kenmerk_key = 1)
ELSE
NULL
END
serienummer,
CASE
WHEN d.ins_discipline_key = 81 -- ICT
THEN
(SELECT k.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel k
WHERE k.ins_deel_key = i.ins_deel_key
AND k.ins_kenmerk_key = 2)
ELSE
NULL
END
model,
b.fac_bookmark_id hide_f_bookmark_id
FROM ins_deel i,
ins_v_alg_overzicht o,
ins_srtdeel s,
ins_srtgroep g,
ins_discipline d,
alg_locatie l,
fac_bookmark b
WHERE b.fac_bookmark_naam = 'QRC_MELDING'
AND (b.fac_bookmark_expire IS NULL
OR b.fac_bookmark_expire > SYSDATE)
AND ins_deel_verwijder IS NULL
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND d.ins_discipline_key = g.ins_discipline_key
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND o.alg_locatie_key = i.ins_alg_locatie_key
AND i.ins_alg_locatie_key = l.alg_locatie_key;
CREATE OR REPLACE VIEW vrtw_v_noti_mailer
(
sender,
receiver,
text,
code,
key,
xkey,
xemail,
xmobile,
fac_srtnotificatie_key,
attachments,
xsender
)
AS
SELECT NULL,
NULL,
'Uw melding met nummer '
|| m.mld_melding_key
|| ' is geregistreerd.',
'CUST01' code,
m.mld_melding_key,
NULL,
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.mld_melding_key
AND mld_kenmerk_key = 9
AND UPPER (mld_kenmerkmelding_waarde) NOT LIKE '%BOUNCE%')
xemail,
NULL,
NULL,
NULL,
NULL
FROM mld_melding m, fac_tracking f
WHERE m.mld_melding_key = f.fac_tracking_refkey
AND f.fac_srtnotificatie_key = 52 -- MLDNEW
AND f.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun
- fac_notificatie_job_interval
/ 24
FROM fac_notificatie_job
WHERE UPPER(fac_notificatie_job_view) =
'VRTW_V_NOTI_MAILER')
AND (SELECT fac_notificatie_job_nextrun
FROM fac_notificatie_job
WHERE UPPER(fac_notificatie_job_view) =
'VRTW_V_NOTI_MAILER');
CREATE OR REPLACE PROCEDURE vrtw_processemail
(pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
puserkey IN NUMBER DEFAULT NULL
)
AS
-- puserkey is alvast een nieuwe parameter die per release 2015.2 er gaat komen (FSN#33503), als gevuld, dan deze als aanvrager van melding gebruiken.
sender prs_perslid.prs_perslid_key%TYPE;
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
v_mldkey mld_melding.mld_melding_key%TYPE;
defaultstdmelding fac_setting.fac_setting_default%TYPE;
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
errormsg fac_result.fac_result_waarde%TYPE;
v_mailadres_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
v_flexprop_mail VARCHAR2(1000);
v_from VARCHAR2 (1000);
subject_regexp fac_setting.fac_setting_default%TYPE;
v_behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
v_mldnum VARCHAR2 (4000);
v_srtdisc VARCHAR2 (4000);
v_flag_on_fenote NUMBER (10);
v_flag_on_bonote NUMBER (10);
v_automailkey NUMBER (10);
v_email prs_perslid.prs_perslid_email%TYPE;
v_negeer NUMBER (10);
BEGIN
-- Niet alle mails komen van te herleiden personen, dus als sender leeg is dan gebruiken we het generieke account.
SELECT x.prs_perslid_key
INTO sender
FROM
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_email) = UPPER (pfrom)
AND p.prs_perslid_verwijder IS NULL
UNION ALL
SELECT prs_perslid_key
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND prs_perslid_oslogin = '_HMAIL'
AND NOT EXISTS (SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_email) = UPPER (pfrom)
AND p.prs_perslid_verwijder IS NULL)) x;
IF sender IS NULL
THEN
SELECT prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_perslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND prs_perslid_oslogin = '_HMAIL';
END IF;
-- Geautomatiseerde mails hebben altijd hetzelfde onderwerp, zo kan via een eigen tabel de melding achterhaald worden.
SELECT fac.safe_to_number (MIN(fac_usrdata_prijs))
INTO v_automailkey
FROM fac_usrdata
WHERE UPPER (psubject) LIKE '%'||UPPER (fac_usrdata_omschr)||'%'
AND fac_usrtab_key = 5;
IF v_automailkey IS NOT NULL
THEN
defaultstdmelding := v_automailkey;
v_mailadres_kenmerk_key := 9;
END IF;
IF defaultstdmelding IS NULL
THEN
defaultstdmelding := fac.getsetting ('defaultstdmelding');
v_mailadres_kenmerk_key := 9;
END IF;
IF UPPER (psubject) LIKE '%AUTOMATISCH ANTWOORD%'
THEN
v_negeer := 1;
ELSE
v_negeer := 0;
END IF;
-------------------------------------------------
-- Check of de afzender pfrom een reply op een bestaande melding doet, in dat geval wordt dat in notities genoteerd.
-- Wat is een bestaande melding:
-- 1) Eerst uit het onderwerp het meldingnummer proberen te onderscheppen, uitgangspunt dat in het onderwerp het meldingnummer '1234' kan worden opgevist, met ervoor en erna een spatie
-- 2) Het 1e nummer dat in het onderwerp staat wordt gezien als meldingnummer, eventuele andere nummers later in het onderwerp worden genegeerd.
-- 3) Het mailadres van de afzender is dezelfde als die van dat gevonden meldingnummer '1234' in het onderwerp, deze afzender (mailadres) staat in flexprop (zie verderop hieronder)
subject_regexp := '[[:digit:]]{1,}';
v_mldnum :=
REGEXP_SUBSTR (psubject,
subject_regexp,
1,
1,
'i'); -- 1234, of 12345, of 12, of 1 etc.
-- v_srtdisc :=
-- REGEXP_SUBSTR (v_mldnum,
-- '[[:alpha:]]',
-- 1,
-- 1,
-- 'i'); -- M
-- v_mldkey := fac.safe_to_number (SUBSTR (v_mldnum, LENGTH (v_srtdisc) + 1)); -- 123, of 12345, of 12, of 1
v_mldkey := fac.safe_to_number (v_mldnum);
-- Uit onderwerp is de vermoedelijke juiste v_mldkey geparsed.
-- Final check: is de afzender van de mail dezelfde als die van v_mldkey, deze afzender (mailadres) staat in flexprop (zie verderop hieronder in gedeelte bij insert melding).
SELECT MAX(SUBSTR(TRIM(km.mld_kenmerkmelding_waarde),1,50))
INTO v_flexprop_mail
FROM mld_kenmerkmelding km
WHERE mld_melding_key = v_mldkey
AND mld_kenmerk_key = v_mailadres_kenmerk_key
AND mld_kenmerkmelding_verwijder IS NULL;
SELECT MAX (p.prs_perslid_email)
INTO v_email
FROM prs_perslid p, mld_melding m
WHERE m.mld_melding_key = v_mldkey
AND m.prs_perslid_key = p.prs_perslid_key;
v_from := SUBSTR(TRIM(pfrom),1,50);
IF v_flexprop_mail = v_from OR v_email = v_from
THEN
-- Gotcha: bestaande melding gevonden
-- Van deze afzender is een eerdere melding geregistreerd, die we plakken de subject en body nu als notitie toe (als perslid system-api user).
INSERT INTO mld_melding_note (mld_melding_key,
mld_melding_note_omschrijving,
prs_perslid_key,
mld_melding_note_flag)
VALUES (v_mldkey,
fac.safe_concat (
psubject || CHR (10) || CHR (13),
REPLACE (pbody,
CHR (13) || CHR (10) || CHR (13) || CHR (10),
CHR (13) || CHR (10))), -- verwijder onnodige witregels
sender,
0); -- 0 is NIET zichtbaar FE (want is system-user, zinloos).
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
IF 1=0 -- vrtw heeft geen melding valggetjes, dus onderstaande kan voor nu weg.
THEN
BEGIN
v_flag_on_fenote := fac.getsetting('mld_flag_on_fenote');
v_flag_on_bonote := fac.getsetting('mld_flag_on_bonote');
IF v_flag_on_bonote <> 0 AND v_flag_on_bonote IS NOT NULL
THEN
UPDATE mld_melding
SET mld_melding_flag = v_flag_on_bonote
WHERE mld_melding_key = v_mldkey
AND ( (mld_melding_flag = v_flag_on_fenote)
OR (mld_melding_flag = 0 OR mld_melding_flag IS NULL));
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line( 'Niet gelukt om flag '
|| v_flag_on_bonote
|| ' te zetten.');
END;
END IF; -- vrtw heef geen vlaggetjes
-- Default tracking is even goed genoeg
fac.trackaction ('MLDNOT',
v_mldkey,
sender,
NULL,
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid, 'maillog', 'Als notitie toegevoegd aan melding ' || v_mldkey);
-- Bepalen van de behandelaar van deze melding
BEGIN
SELECT mld_melding_behandelaar_key
INTO v_behandelaar_key
FROM mld_melding m, prs_perslid p
WHERE mld_melding_key = v_mldkey
AND mld_melding_behandelaar_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL;
EXCEPTION
WHEN OTHERS
THEN
v_behandelaar_key := NULL;
END;
IF v_behandelaar_key IS NOT NULL
THEN
-- Bestaande melding en behandelaar is bekend.
-- Notificatie naar behandelaar
fac.putnotificationsrtprio (
NULL,
v_behandelaar_key,
'MLDNOB',
v_mldkey,
'Melding ' || v_mldkey || ' is door de melder aangepast.',
2,
NULL,
NULL,
NULL,
2,
NULL);
END IF; -- Bestaande melding en behandelaar is bekend.
ELSE
-- GEEN bestaande melding gevonden, we gaan een nieuwe mnelding toevoegen....
IF defaultstdmelding IS NOT NULL AND v_negeer = 0
THEN
-- suggested extensions:
-- check for MLDUSE-write autorisations
-- parse the subject to find an appropriate stdmelding, if uniquely possible
-- append (as a note?) to an existing melding if #key is found in the subject
BEGIN
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_alg_locatie_key,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_melding_status,
mld_stdmelding_key,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed)
VALUES ('MLD',
4, -- email
SYSDATE,
301, -- fictief
SUBSTR (psubject, 1, 75), -- onderwerp is max 80 posities
fac.safe_concat (
CASE WHEN LENGTH (psubject) > 75
THEN 'Volledig onderwerp: ' || psubject || CHR (10) || CHR (13)
ELSE psubject || CHR (10) || CHR (13)
END,
REPLACE (pbody,
CHR (13) || CHR (10) || CHR (13) || CHR (10),
CHR (13) || CHR (10))), -- verwijder onnodige witregels
NULL,
defaultstdmelding,
sender,
sender,
kostenplaats,
3)
RETURNING mld_melding_key
INTO v_mldkey;
-- Vullen van kenmerkwaarde "e-mail adres"
IF pfrom IS NOT NULL AND v_mailadres_kenmerk_key IS NOT NULL
THEN
-- Kenmerk mailadres heeft max. 50 tekens, afkappen dus...
-- zet v_from met maximaal 50 tekens als kenmerk bij de zojuist aangemaakte melding.
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_mldkey, v_mailadres_kenmerk_key, v_from);
END IF;
mld.setmeldingstatus (v_mldkey, 2, sender);
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_mldkey);
END;
END IF; -- defaultstdmelding IS NOT NULL
END IF; -- v_flexprop_mail = v_from
-- Bijlage toevoegen, aangezien VRTW hetzelfde bijlage kenmerk gebruikt over alle vakgroeptypen kan de key gewoon hard worden meegegeven.
kkey := 1041;
IF kkey IS NOT NULL
THEN
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'kenmerkpath',
'MLD\M' || to_char( TRUNC(v_mldkey/1000), 'FM0000') || '___\M' || v_mldkey || '\' || kkey || '\');
END IF;
IF errormsg IS NOT NULL
THEN
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid, 'errormsg', errormsg);
END IF;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
'PROCESSEMAIL',
'W',
'Mail kon niet verwerkt worden afzender: '
|| pfrom
|| '['
|| errormsg
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'errormsg',
'Database fout - Neem contact op met uw systeembeheerder');
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile