IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Modifier le CHARACTER SET d'un champ


Sujet :

SQL Firebird

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut Modifier le CHARACTER SET d'un champ
    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,

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    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 !

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par ddaime Voir le message
    (on dirait du code à la Sergio ).
    Merci, cela m'évitera de l'écrire . Je recommanderai plutôt la méthode 2 pour éviter tout problème de taille lors de la conversion,l'encodage d'un caractère en UNICODE_FSS pouvant aller de 1 à 3 bytes
    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

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    bonjour,

    Merci pour le code , il s’exécute bien mais bizarrement il ya pas de changement, le 'CHARACTER' initiale est 'ISO8859_1'

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    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

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 945
    Points : 123
    Points
    123
    Par défaut
    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

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    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
    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;
    ou APPOSE est la table à modifier, et LIBELLE_APPOSE la colonne à modifier
    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

Discussions similaires

  1. [Character SET] Modifier un caractére
    Par ducho dans le forum Oracle
    Réponses: 5
    Dernier message: 24/03/2014, 16h50
  2. Réponses: 15
    Dernier message: 24/01/2009, 23h24
  3. [9i] Modifier character set d'une bdd
    Par user_oracle dans le forum Oracle
    Réponses: 9
    Dernier message: 22/02/2006, 12h08
  4. [Oracle9i] modifier le character set d'une bd?
    Par osmoze dans le forum Oracle
    Réponses: 8
    Dernier message: 16/02/2005, 13h29
  5. character set // Nls_lang
    Par fopicht dans le forum Oracle
    Réponses: 2
    Dernier message: 23/05/2002, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo