在Microsoft Sql Server中,有一个proc sys.sp_describe_first_result_set
,它接受一个任意的sql查询字符串,并返回描述结果集中类型的数据,如果要执行的话。注意,这是描述复杂查询的结果,而不是表。 MSDN reference
Postgres有什么相似之处吗?
答案 0 :(得分:0)
at the protocol level - 以Describe中extended query protocol消息的形式提供{{3}}。
我不知道任意SQL字符串的任何SQL级别的等价物。但是好主意;在pgsql-general上提高它。我怀疑它很容易实现。
事实上,快速查看exec_describe_statement_message
中的src/backend/tcop/postgres.c
表示大脑位于SendRowDescriptionMessage
中的src/backend/access/common/printtup.c
。编写一个简单的C扩展来完成类似的工作并生成结果集应该不难。如果您熟悉代码库,希望工作几个小时;这个想法将是:
RETURNING
节点,或Query
的顶级SELECT
tlist。ExecTypeFromTL
resjunk
列,并为查询中的每个非resjunk输出发出一行。答案 1 :(得分:0)
我尝试通过创建存储过程来创建temperory view
,然后在删除视图之前检查information_schema.columns。