FCLT#73224 Betere bescherming tegen upgrade/recreate draaien tegen verkeerde databaseversie
svn path=/Database/trunk/; revision=56401
This commit is contained in:
@@ -39,6 +39,42 @@ SET DEFINE ON
|
||||
column fcltlogfile new_value fcltlogfile NOPRINT;
|
||||
select 'RECRE'||_DBV_STRING || '_' || UPPER(USER || '_' || sys_context('USERENV', 'SERVICE_NAME') || '_' || sys_context('USERENV', 'SERVER_HOST')) || '_' || to_char(sysdate,'YYYYMMDD_HH24MISS') || '.lst' as fcltlogfile from dual;
|
||||
spool &fcltlogfile
|
||||
|
||||
column 1 new_value 1 noprint
|
||||
select '' "1" from dual where rownum = 0;
|
||||
define forceit = &1 "donot"
|
||||
|
||||
WHENEVER SQLERROR EXIT;
|
||||
DECLARE
|
||||
tekst VARCHAR2 (1000);
|
||||
fac_schema fac_version.fac_version_schema%TYPE;
|
||||
BEGIN
|
||||
SELECT fac_version_schema
|
||||
INTO fac_schema
|
||||
FROM fac_version;
|
||||
IF SUBSTR(fac_schema, 1, 2) <> SUBSTR(_DBV_STRING, 1, 2) AND '&forceit' != 'FORCE' THEN
|
||||
tekst := '=================================================================' || CHR(10)
|
||||
|| 'This recreate can only be applied to a DB'|| SUBSTR(_DBV_STRING, 1, 2) || ' database' || CHR(10)
|
||||
|| 'Current database is version DB'|| fac_schema || CHR(10)
|
||||
|| 'Add parameter FORCE when calling this script to force the recreate' || CHR(10)
|
||||
|| 'This recreate script is now cancelled!' || CHR(10)
|
||||
|| '=================================================================' || CHR(10);
|
||||
RAISE_APPLICATION_ERROR(-20000, 'OR'||'A-' || CHR(10) || tekst);
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
IF SQLCODE <> -20000 THEN
|
||||
RAISE_APPLICATION_ERROR(-20000, 'Could not find table FAC_VERSION. Not a Facilitor database?');
|
||||
ELSE
|
||||
RAISE;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
WHENEVER SQLERROR CONTINUE;
|
||||
|
||||
SELECT 'The current version of Facilitor@' || USER || ' is: DB' || fac_schema
|
||||
FROM DUAL;
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
SELECT adm.systeminfo FROM DUAL;
|
||||
|
||||
Reference in New Issue
Block a user