164 votes

Obtenir l'encodage d'une base de données Postgres

J'ai une base de données, et j'ai besoin de connaître l'encodage par défaut de la base de données. Je veux l'obtenir à partir de la ligne de commande.

218voto

Bohemian Points 134107

Depuis la ligne de commande :

psql my_database -c 'SHOW SERVER_ENCODING'

De l'intérieur psql un IDE SQL ou une API :

SHOW SERVER_ENCODING;

0 votes

N'est-ce pas le paramètre de niveau serveur (le paramètre par défaut utilisé pour les bases de données nouvellement créées) plutôt que le paramètre de niveau base de données/catalogue demandé dans la Question ?

6 votes

Notez que dans psql, il doit y avoir un point-virgule à la fin. SHOW SERVER_ENCODING;

57voto

RunningAdithya Points 423

Méthode 1 :

Si vous êtes déjà connecté au serveur de données, il suffit de copier et coller ceci.

SHOW SERVER_ENCODING;

Résultat :

  server_encoding 
-----------------  
UTF8

Pour l'encodage client :

 SHOW CLIENT_ENCODING;

Méthode 2 :

Encore une fois, si vous êtes déjà connecté, utilisez ceci pour obtenir le résultat de la liste.

\l

45voto

Peter Eisentraut Points 12513

Une solution programmatique :

SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = 'yourdb';

33voto

Greenisha Points 849

Si vous voulez obtenir les encodages de la base de données :

psql  -U postgres -h somehost --list

Vous verrez quelque chose comme :

List of databases
           Name         |  Owner   | Encoding
------------------------+----------+----------
db1                     | postgres | UTF8

13voto

Basil Bourque Points 8938

En résumé

SELECT character_set_name 
FROM information_schema.character_sets 
;

De manière standard : information_schema

Desde el Schéma standard SQL information_schema présente dans chaque base de données/catalogue, utilisez la vue définie nommée character_sets . Cette approche devrait être transférable d'un pays à l'autre tous les systèmes de base de données standard .

SELECT * 
FROM information_schema.character_sets 
;

Bien que le nom soit au pluriel, il n'affiche qu'une seule ligne, rendant compte de la base de données/catalogue actuelle.

screenshot of pgAdmin 4 with results of query shown above

La troisième colonne est character_set_name :

Nom du jeu de caractères, actuellement implémenté pour montrer le nom de l'encodage de la base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X