2017-10-18 4 views
0

https://www.postgresql.org/docs/current/static/libpq-exec.html à côté de PQprepare:postgres: Puis-je préparer la déclaration sans nom de SQL

La fonction crée une déclaration préparée nommée stmtName de la chaîne de requête , qui doit contenir une seule commande SQL. stmtName peut être "" pour créer une instruction sans nom, auquel cas toute instruction non nommée préexistante est automatiquement remplacée; sinon, il s'agit d'une erreur si le nom de l'instruction est déjà défini dans la session en cours.

et plus:

Les instructions préparées avec PQexecPrepared peuvent également être créés par exécution d'instructions SQL PREPARE.

maintenant https://www.postgresql.org/docs/current/static/sql-prepare.html

nom PRÉPARER [(data_type [...])] AS déclaration

et:

Nom

Un nom arbitraire donné à cette déclaration particulière préparée. Il doit être unique au sein d'une même session et est ensuite utilisé pour exécuter ou libérer une instruction précédemment préparée.

Question: Puis-je créer non déclaration sans nom préparé en utilisant l'instruction SQL PREPARE? silencieusement réutilisable et tout le reste ...

t=# prepare ""(int) as select $1,now(); 
ERROR: zero-length delimited identifier at or near """" 
LINE 1: prepare ""(int) as select $1,now(); 

et ommiting le nom:

ERROR: syntax error at or near "as" 

Ou je manque quelque chose très évident ..

Répondre

1

Lol Sans nom préparées ne sont pas seulement pris en charge sur le protocole de fil.

Ils sont principalement utilisés pour les instructions ponctuelles avec paramètres de liaison et pour le traitement par lots.

+0

merci. J'ai pensé ainsi. Pensez-vous que je devrais demander aux gens de docs d'ajuster 'Les instructions préparées pour une utilisation avec PQexecPrepared peuvent également être créées en exécutant des instructions SQL PREPARE.' pour avoir cette exception? .. –

+0

Si vous le jugez nécessaire, bien sûr. Soumettre un patch :) –