Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 26/08/2011 15:10:45
- sylvinhio
- Membre
C# et VACUUM sur table d'un autre schéma
Bonjour à tous,
J'ai une application dans laquelle des données sont insérées en base, dans un schéma différent du schéma standard "public".
L'utilisateur sélectionne une option dans le menu, pour recalculer des données dans cet autre schéma.
Cette option du menu exécute une fonction PGSQL qui effectue les insert/maj. La fonction PGSQL est elle définie dans le schéma standard "public".
Comme l'utilisateur peut effectuer ceci à volonté, je souhaite ajouter à la fin de ces exécutions un VACUUM de la table concernée, puis un ANALYSE et un REINDEX.
J'ai donc implémenté une fonction PGSQL qui exécute un VACUUM "monAutreSchema".maTable.
==> J'obtiens une erreur qui m'indique que la commande VACUUM ne peut être effectuée depuis une fonction.
J'implémente donc directement le VACUUM à la fin de mes insert. Lorsque les insert sont terminés, j'exécute en C# la commande : VACUUM "monAutreSchema".maTable
==> J'obtiens une erreur qui m'indique une erreur de syntaxe sur ou près de "."'
Je ne sais donc comment exécuter ce VACUUM en ligne de commande... Le fait de préfixer le nom de la table par le nom du schéma a l'air de poser problème...
Des idées ?
Merci par avance de votre aide
Hors ligne
#2 26/08/2011 15:41:33
- gleu
- Administrateur
Re : C# et VACUUM sur table d'un autre schéma
Aucune. Ça n'a pas l'air de poser problème sur ma version de PostgreSQL (9.0.4). Pourait-on avoir la version de votre PostgreSQL ainsi que le message d'erreur original ?
Guillaume.
Hors ligne
#3 26/08/2011 15:55:31
- sylvinhio
- Membre
Re : C# et VACUUM sur table d'un autre schéma
Je suis en PostgreSQL 8.4
J'insiste bien sur le fait que tout marche directement dans PostgreSQL, mais c'est dans mon appli que la requête plante...
Comme il s'agit d'une appli C#, je récupère directement le message C# qui est donc : Erreur de syntaxe sur ou près de "."'
Et quand je regarde mon exception, j'ai l'impression, qu'il exécute en fait un : select * from VACUUM monAutreSchema.maTable.
Alors que mon code fait:
sqlHelper.executeProc("VACUUM monAutreSchema.maTable")
Hors ligne
#4 26/08/2011 16:08:42
- sylvinhio
- Membre
Re : C# et VACUUM sur table d'un autre schéma
C'est bon, problème résolu.
Rien à voir avec PostgreSQL, lorsqu'il me construisait ma commande, il disait que c'était une commande de type "Procédure stockée" et rajoutait systématiquement le select * from...
En modifiant pour dire qu'il s'agissait d'une commande de type Texte, cela fonctionne.
Merci de ton aide...
Hors ligne
Pages : 1