requête sql dynamique dans postgres
J'ai été de tenter d'utiliser le SQL Dynamique pour exécuter des requêtes dans postgres.
Exemple:
EXECUTE format('SELECT * from result_%s_table', quote_ident((select id from ids where condition = some_condition)))
J'ai une requête à une table, ce qui est de la forme result_%s_table dans lequel, j'ai besoin de remplacer le bon nom de la table (un id) à partir d'une autre table.
Je reçois le message d'erreur ERROR: prepared statement "format" does not exist
Lien: chaîne de substitution, avec un résultat de requête postgresql
source d'informationauteur psteelk
Vous devez vous connecter pour publier un commentaire.
EXECUTE ... USING
ne fonctionne que dans PL/PgSQL - c'est à dire à l'intérieur des fonctions oublocs écrit en PL/PgSQL langue. Il ne fonctionne pas dans la plaine SQL; la
EXECUTE
dans la plaine SQL est complètement différent, pour l'exécution de requêtes préparées. Vous ne pouvez pas utiliser le SQL dynamique directement dans PostgreSQL, SQL du dialecte.Comparer:
EXÉCUTER ... à l'AIDE de
;EXECUTE
Voir la 2ème dernier par ma précédente réponse.
En plus de pas en cours d'exécution, sauf dans PL/PgSQL votre instruction SQL est mauvais, il ne fera pas ce que vous attendez. Si
(select id from ids where condition = some_condition)
renvoie dire42
la déclaration d'échouer siid
est un entier. Si c'est de la fonte pour le texte, vous obtiendrez:Qui est invalide. Vous voulez vraiment
result_42_table
ou"result_42_table"
. Vous devriez écrire quelque chose de plus comme:... si vous devez utiliser
quote_ident
.Essayez d'utiliser
Cela va de données de retour en forme de table. Vous devez utiliser cette fonction stockée de PostgreSQL.
J'ai déjà créé sur la démonstration complète sur la coutume de filtre et de tri personnalisée dynamiques à l'aide de requêtes de PostgreSQL.
Veuillez visiter cette url:
http://www.dbrnd.com/2015/05/postgresql-dynamic-sql/
EXECUTE
ne fonctionne que sur pl/pqsql de l'environnement.au lieu d'EXÉCUTER essayer avec une sélection de
de sortie serait la requête dynamique.
utilisation: