繁体   English   中英

确定PostgreSQL和libpq上的语句

[英]Identifying an statement on PostgreSQL & libpq

听起来可能很愚蠢,但是在使用libpq编写C程序时,我需要确定哪种SQL语句(INSERT,SELECT,UDATE等)在PostgreSQL上已经准备好了。

让我解释一下不同:我正在使用提供对PostgreSQL数据库访问的libpq库在C上开发一个小型应用程序。 我在PostgreSQL上有一条准备好的语句(使用PQprepare命令),但是我想知道在运行它之前是哪种SQL语句(SELECT,...)。

你为什么会问? 我们只说应用程序从另一个来源读取SQL查询,也就是说,它们不是硬编码的。 当然,我可以在将应用程序发送给PostgreSQL之前先解析应用程序中的SQL,但对我来说,PostgreSQL可以为我做这件事非常方便。

仅作为示例,Oracle可以通过其OCI库返回此信息。

您可以查询系统目录:

SELECT * FROM pg_prepared_statements

它包含有关准备好的语句的详细信息,包括column statement “客户端提交的查询字符串”。
在此处阅读更多手册

请注意,单个有效的SQL语句可以同时包含所有这些关键字: INSERTSELECTUDATE (例如,在可写的WITH子句中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM