FCLT#88579 Facilitor utf-8 ondersteuning

svn path=/Database/trunk/; revision=69990
This commit is contained in:
Jos Groot Lipman
2025-08-13 11:05:07 +00:00
parent 1b51be6440
commit 5d783e2dc2
7 changed files with 56 additions and 30 deletions

View File

@@ -203,6 +203,9 @@ AS
raise_application_error(-20001, tekst); raise_application_error(-20001, tekst);
END IF; END IF;
-- Voor als een once-script ooit tabellen aanmaakt.
EXECUTE IMMEDIATE 'ALTER SESSION SET nls_length_semantics=''char''';
RETURN tekst; RETURN tekst;
END; END;

View File

@@ -13,9 +13,9 @@ CREATE_TABLE(bgt_disc_params,0)
NUMBER (10) NUMBER (10)
CONSTRAINT bgt_r_ins_discipine_key REFERENCES ins_tab_discipline (ins_discipline_key), CONSTRAINT bgt_r_ins_discipine_key REFERENCES ins_tab_discipline (ins_discipline_key),
bgt_disc_params_code -- projectcode bgt_disc_params_code -- projectcode
VARCHAR2 (20 BYTE), VARCHAR2 (20 CHAR),
bgt_disc_params_opdrachtgever bgt_disc_params_opdrachtgever
VARCHAR2 (200 BYTE), VARCHAR2 (200 CHAR),
bgt_disc_params_startdatum bgt_disc_params_startdatum
DATE DATE
); );
@@ -28,18 +28,18 @@ CREATE_TABLE(bgt_project, 0)
NUMBER (10) NUMBER (10)
CONSTRAINT bgt_r_ins_discipline_key1 REFERENCES ins_tab_discipline (ins_discipline_key), CONSTRAINT bgt_r_ins_discipline_key1 REFERENCES ins_tab_discipline (ins_discipline_key),
bgt_project_code bgt_project_code
VARCHAR2 (20 BYTE) VARCHAR2 (20 CHAR)
CONSTRAINT bgt_c_bgt_project_code NOT NULL, CONSTRAINT bgt_c_bgt_project_code NOT NULL,
bgt_project_omschrijving bgt_project_omschrijving
VARCHAR2 (60 BYTE), VARCHAR2 (60 CHAR),
bgt_project_volgnr bgt_project_volgnr
NUMBER (3), NUMBER (3),
bgt_project_prijspeildatum bgt_project_prijspeildatum
DATE, DATE,
bgt_project_info bgt_project_info
VARCHAR2 (4000 BYTE), VARCHAR2 (4000 CHAR),
bgt_project_notes bgt_project_notes
VARCHAR2 (4000 BYTE), VARCHAR2 (4000 CHAR),
bgt_project_aanmaak bgt_project_aanmaak
DATE DEFAULT SYSDATE, DATE DEFAULT SYSDATE,
bgt_project_verwijder bgt_project_verwijder
@@ -59,9 +59,9 @@ CREATE_TABLE(bgt_kostenrubriek,0)
CONSTRAINT bgt_c_bgt_kostenrubriek1 NOT NULL CONSTRAINT bgt_c_bgt_kostenrubriek1 NOT NULL
CONSTRAINT bgt_r_bgt_project_key1 REFERENCES bgt_project (bgt_project_key), CONSTRAINT bgt_r_bgt_project_key1 REFERENCES bgt_project (bgt_project_key),
bgt_kostenrubriek_code bgt_kostenrubriek_code
VARCHAR2 (20 BYTE), VARCHAR2 (20 CHAR),
bgt_kostenrubriek_oms bgt_kostenrubriek_oms
VARCHAR2 (60 BYTE) NOT NULL, VARCHAR2 (60 CHAR) NOT NULL,
fin_btwtabelwaarde_key fin_btwtabelwaarde_key
NUMBER(10) NUMBER(10)
CONSTRAINT bgt_r_fin_btwtabelwaarde_key REFERENCES fin_btwtabelwaarde (fin_btwtabelwaarde_key) CONSTRAINT bgt_r_fin_btwtabelwaarde_key REFERENCES fin_btwtabelwaarde (fin_btwtabelwaarde_key)

View File

@@ -1571,7 +1571,7 @@ CREATE_TABLE( fac_menuitems, 0)
fac_menuitems_groep NUMBER(1), /* 0=personal, 1=professional, 2=appmanagement, 3=mobile*/ fac_menuitems_groep NUMBER(1), /* 0=personal, 1=professional, 2=appmanagement, 3=mobile*/
fac_menuitems_label VARCHAR2 (30 CHAR) NOT NULL, fac_menuitems_label VARCHAR2 (30 CHAR) NOT NULL,
fac_menuitems_oms VARCHAR2 (60 CHAR), fac_menuitems_oms VARCHAR2 (60 CHAR),
fac_menuitems_module VARCHAR2 (3 BYTE), fac_menuitems_module VARCHAR2 (3 CHAR),
fac_menuitems_url VARCHAR2 (60 CHAR), fac_menuitems_url VARCHAR2 (60 CHAR),
fac_menuitems_srtdisc NUMBER(1), fac_menuitems_srtdisc NUMBER(1),
fac_menuitems_disc NUMBER(1), fac_menuitems_disc NUMBER(1),
@@ -2204,7 +2204,7 @@ CREATE_TABLE(fac_imp_cnt, 0)
uurtarief NUMBER (6,2), uurtarief NUMBER (6,2),
korting NUMBER (4,2), korting NUMBER (4,2),
locatiecode VARCHAR2 (10), locatiecode VARCHAR2 (10),
terreincode VARCHAR2 (12), terreincode VARCHAR2 (12),
gebouwcode VARCHAR2 (12), gebouwcode VARCHAR2 (12),
verdiepingcode NUMBER (3), verdiepingcode NUMBER (3),
ruimtecode VARCHAR2 (20), ruimtecode VARCHAR2 (20),

View File

@@ -22,17 +22,17 @@ spool &fcltlogfile
WHENEVER SQLERROR EXIT; WHENEVER SQLERROR EXIT;
DECLARE DECLARE
tekst VARCHAR2 (1000); tekst VARCHAR2 (1000);
charset VARCHAR2 (1000);
n_object NUMBER (10); n_object NUMBER (10);
BEGIN BEGIN
CASE ASCII('<27>') SELECT MIN(client_charset)
WHEN 191 THEN tekst :='WE8ISO8859P1'; INTO charset
WHEN 128 THEN tekst :='WE8MSWIN1252'; -- De enige goede FROM v$session_connect_info
ELSE tekst :='UNKNOWN '; WHERE sid = sys_context('USERENV','SID');
END CASE; IF charset <> 'WE8MSWIN1252' THEN
IF tekst <> 'WE8MSWIN1252' THEN
tekst := '=================================================================' || CHR(10) tekst := '=================================================================' || CHR(10)
|| 'Foute clientside NLS_LANG ['|| TO_CHAR(ASCII('<27>')) ||'] voor dit Facilitor script.' || CHR(10) || 'Foute clientside NLS_LANG voor dit Facilitor script.' || CHR(10)
|| 'WE8MSWIN1252 is nodig, ik vermoed '|| tekst || CHR(10) || 'WE8MSWIN1252 is nodig, ik vermoed '|| charset || CHR(10)
|| 'Geef bijvoorbeeld in Windows voordat SQL*Plus opstart:' || CHR(10) || 'Geef bijvoorbeeld in Windows voordat SQL*Plus opstart:' || CHR(10)
|| 'SET NLS_LANG=.WE8MSWIN1252' || CHR(10) || 'SET NLS_LANG=.WE8MSWIN1252' || CHR(10)
|| 'Het script wordt nu afgebroken!' || CHR(10) || 'Het script wordt nu afgebroken!' || CHR(10)
@@ -67,12 +67,15 @@ PROMPT
SELECT 'Current os_user: ' || SYS_CONTEXT( 'userenv', 'os_user' ) FROM DUAL; SELECT 'Current os_user: ' || SYS_CONTEXT( 'userenv', 'os_user' ) FROM DUAL;
PROMPT PROMPT
ALTER SESSION SET nls_length_semantics='char';
SET LINESIZE 1000 SET LINESIZE 1000
SET DEFINE OFF SET DEFINE OFF
SET ECHO ON SET ECHO ON
#include "adm\adm_tab.src" #include "adm\adm_tab.src"
#include "adm\adm_seq.src" #include "adm\adm_seq.src"
#include "adm\adm_tri.src" #include "adm\adm_tri.src"
/* adm_pac.src komt straks nog een keer met de recreate maar we hebben hem al eerder nodig */
#include "adm\adm_pac.src" #include "adm\adm_pac.src"
/* TYPES */ /* TYPES */
@@ -203,6 +206,6 @@ PROMPT ======================================================================
SELECT 'Schema FACILITOR@' || USER || ' is now ' || fac.getdbversion() FROM DUAL; SELECT 'Schema FACILITOR@' || USER || ' is now ' || fac.getdbversion() FROM DUAL;
PROMPT PROMPT
PROMPT Your schema initialisation is ready. Please check the logfile for errors. PROMPT Your schema initialisation is ready. Please check the logfile for errors.
PROMPT If in doubt please contact: FACILITOR Helpdesk +31 53 4800 710 PROMPT If in doubt please contact: Facilitor Helpdesk +31 53 4800 710
PROMPT Copyright (c) 1996-2025 Aareon Nederland B.V. All rights reserved. PROMPT Copyright (c) 1996-2025 Aareon Nederland B.V. All rights reserved.
SPOOL OFF SPOOL OFF

View File

@@ -23,9 +23,9 @@ CREATE_TABLE(web_user_messages, 0)
VARCHAR2(512) VARCHAR2(512)
CONSTRAINT web_c_web_mes_dsc NOT NULL, CONSTRAINT web_c_web_mes_dsc NOT NULL,
web_user_mess_action_soort web_user_mess_action_soort
CHAR(1), VARCHAR2(1),
web_user_mess_action_status web_user_mess_action_status
CHAR(1), VARCHAR2(1),
web_user_mess_action_params web_user_mess_action_params
VARCHAR2(255), VARCHAR2(255),
web_user_mess_prioriteit web_user_mess_prioriteit

View File

@@ -41,6 +41,25 @@ ALTER TABLE prs_perslid
DEFAULT 1 DEFAULT 1
NOT NULL; NOT NULL;
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#88579
DECLARE
altersql VARCHAR (4000);
BEGIN
FOR curs IN ( SELECT c.*
FROM user_tab_columns c JOIN user_tables t ON t.table_name = c.table_name
WHERE char_used = 'B'
ORDER BY c.table_name, c.column_name)
LOOP
-- FAC_IMP_OPROGNOSE z<>n kolom ELEMENT is een enigszins reserved woord lijkt. Daarom quotes
altersql :=
'alter table ' || curs.table_name || ' MODIFY "' || curs.column_name || '" VARCHAR (' || curs.data_length || ' CHAR)';
DBMS_OUTPUT.PUT_LINE (altersql);
EXECUTE IMMEDIATE altersql;
END LOOP;
END;
/
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000 /////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000

View File

@@ -62,17 +62,17 @@ END;
DECLARE DECLARE
tekst VARCHAR2 (1000); tekst VARCHAR2 (1000);
charset VARCHAR2 (1000);
BEGIN BEGIN
CASE ASCII('<27>') SELECT MIN(client_charset)
WHEN 191 THEN tekst :='WE8ISO8859P1'; INTO charset
WHEN 128 THEN tekst :='WE8MSWIN1252'; -- De enige goede FROM v$session_connect_info
ELSE tekst :='UNKNOWN '; WHERE sid = sys_context('USERENV','SID');
END CASE; IF charset <> 'WE8MSWIN1252' THEN
IF tekst <> 'WE8MSWIN1252' THEN
tekst := '=================================================================' || CHR(10) tekst := '=================================================================' || CHR(10)
|| 'Wrong clientside NLS_LANG ['|| TO_CHAR(ASCII('<27>')) ||'] for this Facilitor upgrade.' || CHR(10) || 'Wrong clientside NLS_LANG for this Facilitor upgrade.' || CHR(10)
|| 'WE8MSWIN1252 is required, we suspect '|| tekst || CHR(10) || 'WE8MSWIN1252 is required, we suspect '|| charset || CHR(10)
|| 'Please enter before you start SQL*Plus:' || CHR(10) || 'Please enter this before you start SQL*Plus:' || CHR(10)
|| ' on Windows:' || CHR(10) || ' on Windows:' || CHR(10)
|| ' SET NLS_LANG=.WE8MSWIN1252' || CHR(10) || ' SET NLS_LANG=.WE8MSWIN1252' || CHR(10)
|| ' on Unix:' || CHR(10) || ' on Unix:' || CHR(10)
@@ -130,6 +130,7 @@ variable update_start number
exec :update_start := dbms_utility.get_time exec :update_start := dbms_utility.get_time
/* om zeker te weten dat eventuele conversies goed gaan */ /* om zeker te weten dat eventuele conversies goed gaan */
ALTER SESSION SET nls_territory='america'; ALTER SESSION SET nls_territory='america';
ALTER SESSION SET nls_length_semantics='char';
SELECT adm.systeminfo FROM DUAL; SELECT adm.systeminfo FROM DUAL;