Einzelnen Beitrag anzeigen

Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
460 Beiträge
 
Delphi XE4 Professional
 
#1

Ändern von Character Set und Collate

  Alt 22. Apr 2021, 14:15
Datenbank: firebird • Version: 2.5 • Zugriff über: Teoa Lib
ZeosLib 7.2.:-release

Hallo,

Wie kann ich alte bestehende Firebird-Datenbänke 2.5 ohne Datenverlust verändern?

Da die Iso8859_1 kein "€"-Zeichen speichern kann - hab ich echt ein Problem ..und das ist erst JETZT aufgefallen !!!

Wie kann ich ALLE TABELLEN auf Character set UTF8 umstellen ( ich hab sicherlich hunderte CHARACTER SET ISO8859_1 COLLATE DE_DE Einträge) ???



Vielen Dank für Hilfe
Erich


Die Database Metadata schaut aktuell so aus:

Delphi-Quellcode:
SET SQL DIALECT 3;

/* CREATE DATABASE 'C:\test\database\DATABASE.FDB' PAGE_SIZE 4096

 DEFAULT CHARACTER SET ISO8859_1 */

/* External Function declarations */

DECLARE EXTERNAL FUNCTION RDB$GET_CONTEXT
VARCHAR(80) CHARACTER SET NONE, VARCHAR(80) CHARACTER SET NONE
RETURNS VARCHAR(255) CHARACTER SET NONE FREE_IT
ENTRY_POINT 'get_context' MODULE_NAME 'system_module';


DECLARE EXTERNAL FUNCTION RDB$SET_CONTEXT
VARCHAR(80) CHARACTER SET NONE, VARCHAR(80) CHARACTER SET NONE, VARCHAR(255) CHARACTER SET NONE
RETURNS INTEGER BY VALUE
ENTRY_POINT 'set_context' MODULE_NAME 'system_module';



/* Table: ANHANG, Owner: SYSDBA */

CREATE TABLE "ANHANG"
(
  "INR"   INTEGER NOT NULL,
  "USER_INR"   INTEGER,
  "DATEINAME"   CHAR(300) CHARACTER SET ISO8859_1 COLLATE DE_DE,
  "PFAD"   CHAR(300) CHARACTER SET ISO8859_1 COLLATE DE_DE,
CONSTRAINT "PK_ANHANG" PRIMARY KEY ("INR")
);

....
.... Viele Tabellen
....

/* Index definitions for all user tables */

CREATE INDEX "IDX_TEMP_ZUGRIFF_1" ON "TEMP_ZUGRIFF"("VORGANG");
....
.... Viele Indexe
....

CREATE GENERATOR "POOL";

/* Grant Roles for this database */


/* Role: "RDB$ADMIN", Owner: SYSDBA */

CREATE ROLE "RDB$ADMIN";

/* Grant permissions for this database */
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \

Geändert von erich.wanker (22. Apr 2021 um 17:28 Uhr)
  Mit Zitat antworten Zitat