113 lines
4.1 KiB
SQL
113 lines
4.1 KiB
SQL
/* _up/prologue.inc
|
|
* Proloog van update script van FACILITOR, to be included in every schema update
|
|
*
|
|
* $Revision$
|
|
* $Id$
|
|
*/
|
|
#include "modules.h"
|
|
#include "comsql.h"
|
|
|
|
/* Test eerst of de vorige versie van module FAC zoals genoemd in tabel
|
|
* fac_module wel het te verwachten versienummer heeft
|
|
* als dat niet zo is dient de gebruiker het script ZELF af te breken middels
|
|
* control-c.
|
|
* If you want to use this script in a non-interactive fashion, use e.g.
|
|
DEFINE ACCEPT_DB20=1
|
|
@@DB19TO20.SQL
|
|
in a script
|
|
* Nu vervolgt het script en zal aan het einde van het script
|
|
* het interne versienummer en de datum worden bijgewerkt.
|
|
*/
|
|
SET HEADING OFF
|
|
SET TERMOUT ON
|
|
SET FEEDBACK OFF
|
|
SET ECHO OFF
|
|
SET PAGESIZE 0
|
|
|
|
#define _MKVER(a) STRINGIZE(a)
|
|
|
|
column fcltlogfile new_value fcltlogfile NOPRINT;
|
|
select _MKVER(_VER) || '_' || UPPER(USER || '_' || sys_context('USERENV', 'SERVICE_NAME') || '_' || sys_context('USERENV', 'SERVER_HOST')) || '_' || to_char(sysdate,'YYYYMMDD_HH24MISS') || '.lst' as fcltlogfile from dual;
|
|
spool &fcltlogfile
|
|
|
|
WHENEVER SQLERROR EXIT;
|
|
DECLARE
|
|
tekst VARCHAR2 (1000);
|
|
BEGIN
|
|
CASE ASCII('€')
|
|
WHEN 191 THEN tekst :='WE8ISO8859P1';
|
|
WHEN 128 THEN tekst :='WE8MSWIN1252'; -- De enige goede
|
|
ELSE tekst :='UNKNOWN ';
|
|
END CASE;
|
|
IF tekst <> 'WE8MSWIN1252' THEN
|
|
tekst := '=================================================================' || CHR(10)
|
|
|| 'Foute clientside NLS_LANG ['|| TO_CHAR(ASCII('€')) ||'] voor deze FACILITOR upgrade.' || CHR(10)
|
|
|| 'WE8MSWIN1252 is nodig, ik vermoed '|| tekst || CHR(10)
|
|
|| 'Geef bijvoorbeeld in Windows voordat SQL*Plus opstart:' || CHR(10)
|
|
|| ' SET NLS_LANG=.WE8MSWIN1252' || CHR(10)
|
|
|| 'Of op Unix:' || CHR(10)
|
|
|| ' export NLS_LANG=.WE8MSWIN1252' || CHR(10)
|
|
|| 'Het upgrade script wordt nu afgebroken!' || CHR(10)
|
|
|| '=================================================================' || CHR(10);
|
|
RAISE_APPLICATION_ERROR(-20000, 'OR'||'A-' || CHR(10) || tekst);
|
|
END IF;
|
|
END;
|
|
/
|
|
WHENEVER SQLERROR CONTINUE;
|
|
|
|
PROMPT
|
|
PROMPT ************************************************************************
|
|
PROMPT UPGRADE of FACILITOR schema to version EVALCONCAT(DB, _DBV) $Revision$
|
|
PROMPT Copyright (c) 1996-2015 Facilitor bv, the Netherlands. All rights reserved.
|
|
PROMPT
|
|
SELECT 'The current version of FACILITOR@' || USER || ' is: ' || fac.getdbversion()
|
|
FROM DUAL;
|
|
PROMPT After the upgrade the schema version will be: EVALCONCAT(DB, _DBV)
|
|
PROMPT
|
|
PROMPT PLEASE VERIFY THESE SCHEMA NUMBERS!
|
|
PROMPT
|
|
PROMPT If these versions are not sequencing then execution of this script
|
|
PROMPT should be stopped by pressing Ctrl-C right now!
|
|
PROMPT
|
|
PROMPT Only run this script when no users or processes are using FACILITOR
|
|
PROMPT
|
|
PROMPT ************************************************************************
|
|
PROMPT
|
|
PROMPT Press Enter to continue
|
|
SET DEFINE ON
|
|
PROMPT EVALCONCAT(&&ACCEPT_DB, _DBV)
|
|
PROMPT
|
|
PROMPT The upgrade continues, be patient. You will be notified when we are done...
|
|
PROMPT
|
|
|
|
SET DEFINE OFF /* Pas na de accept! */
|
|
SET HEADING OFF
|
|
SET FEEDBACK ON
|
|
SET VERIFY OFF
|
|
SET LINESIZE 1000
|
|
SET TIME ON
|
|
SET SERVEROUTPUT ON SIZE UNLIMITED;
|
|
variable update_start number
|
|
exec :update_start := dbms_utility.get_time
|
|
/* om zeker te weten dat eventuele conversies goed gaan */
|
|
ALTER SESSION SET nls_territory='america';
|
|
|
|
PROMPT This script was run in user:
|
|
SHOW USER
|
|
SELECT 'The version of FACILITOR@' || USER || ' was ' || fac.getdbversion()
|
|
FROM DUAL;
|
|
|
|
SET HEADING OFF
|
|
SET LINESIZE 132
|
|
/* first compile all views, triggers etc */
|
|
BEGIN DBMS_UTILITY.COMPILE_SCHEMA(USER, FALSE); END;
|
|
/
|
|
PROMPT List of all invalid objects *before* FACILITOR upgrade.
|
|
SELECT 'OR'||'A-'||'DB'||_DBV_STRING||' Warning: ' || object_type || ' ' || object_name || ' was ' || status || ' before the upgrade.'
|
|
FROM user_objects
|
|
WHERE object_type IN ('VIEW', 'TRIGGER', 'PACKAGE', 'PROCEDURE', 'FUNCTION', 'PACKAGE BODY')
|
|
AND status <> 'VALID'
|
|
ORDER BY object_name;
|
|
|
|
SET ECHO ON
|