Bonjour à tous ,
je voudrais modifier le CHARACTER d'un champs dans une table de ISO8859_1 to UNICODE_FSS
Code : Sélectionner tout - Visualiser dans une fenêtre à part ACT Varchar(255) CHARACTER SET ISO8859_1,
Bonjour à tous ,
je voudrais modifier le CHARACTER d'un champs dans une table de ISO8859_1 to UNICODE_FSS
Code : Sélectionner tout - Visualiser dans une fenêtre à part ACT Varchar(255) CHARACTER SET ISO8859_1,
Bonsoir.
J'ai découvert ce site l'année dernière et il est fort intéressant et très complet. Les articles sont bien détaillés et le code super propre (on dirait du code à la Sergio ).
Vous y trouverez la réponse à votre problème.
https://firebird21.wordpress.com/201...e-una-columna/
Bonnes fêtes !
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
bonjour,
Merci pour le code , il s’exécute bien mais bizarrement il ya pas de changement, le 'CHARACTER' initiale est 'ISO8859_1'
Et, si vous nous indiquiez ce que vous avez écrit comme code ?
Et comment vous avez vérifié votre assertion ?
Ceci sans parler du fait que vous ne nous avez pas indiqué de quelle version de Firebird il s'agit. L'article pointé ne l'indiquait pas non plus mais vu la date je dirais FB 2.1 . Chaque version "majeure" peut réduire ou augmenter certaines choses, d'une manière générale plus on monte ne version plus les accès aux tables système sont protégées.
Le saviez-vous ? FB3 ne permet plus les modifications sur les tables système pour désactiver facilement les triggers (UPDATE operation is not allowed for system table RDB$TRIGGERS ), FB4 ne permet pas par défaut les UDF externes
Pour avoir fait le test, la méthode 2 : création d'une nouvelle colonne, copie des données par UPDATE, destruction de l'ancienne colonne, renommage de la nouvelle colonne (ancien nom) fonctionne sous FB3
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
désolé pour le délai de réponse, je suis un peu malade (grippe). Pour la version de firebird c'est 2.5
La commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER TABLE DOS ALTER COLUMN ACT TYPE VARCHAR(255) CHARACTER SET UNICODE_FSS
dans mon premier post, je vous avais recommandé d'utiliser la méthode 2 ! Celle-ci fonctionne (testée sur FB3 et FB 2.5)
voici ce que j'ai écrit dans FlameRobin
ou APPOSE est la table à modifier, et LIBELLE_APPOSE la colonne à modifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ALTER TABLE APPOSE ADD TEMPCOL VARCHAR(40) CHARACTER SET UNICODE_FSS; COMMIT; UPDATE APPOSE SET TEMPCOL=CAST(LIBELLE_APPOSE AS VARCHAR(40) CHARACTER SET OCTETS); COMMIT; ALTER TABLE APPOSE DROP LIBELLE_APPOSE; ALTER TABLE APPOSE ALTER COLUMN TEMPCOL TO LIBELLE_APPOSE;
Vous remarquerez que j'ai simplifié la méthode (ce n'était que pour test)
Rien ne vous empêche d'en faire une procédure (AMHA inutile puisque processus normalement ponctuel !) avec paramètres, en utilisant des EXECUTE STATEMENT
pour info voici un SQL pour vérifier
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT r.RDB$FIELD_NAME,f.RDB$FIELD_NAME, r.RDB$CHARACTER_SET_ID,s.RDB$CHARACTER_SET_NAME FROM RDB$FIELDS r LEFT JOIN RDB$CHARACTER_SETS s on s.RDB$CHARACTER_SET_ID=r.RDB$CHARACTER_SET_ID LEFT JOIN RDB$RELATION_FIELDS f on f.RDB$FIELD_SOURCE=r.RDB$FIELD_NAME where f.RDB$RELATION_NAME='NOMDEMATABLE'
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager