c语言 - 在 PostgreSQL 和 libpq 上标识一个语句



这可能听起来很傻,但我需要识别哪种SQL语句(INSERT, SELECT, UDATE,其他)在PostgreSQL上已经准备好了语句,同时使用libpq编写C程序。

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

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

只是一个例子,Oracle通过它的OCI库可以返回这个信息。

可以查询系统目录:

SELECT * FROM pg_prepared_statements

保存准备语句的详细信息,包括statement列中的"客户端提交的查询字符串"。
在这里阅读更多手册。

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

相关内容

  • 没有找到相关文章

最新更新